PHPのスクレイピングがうまくいかないぞ
はじめまして
どうせつくるならブログもやってみようと思いはてブロはじめてみました。
んで、今回趣味もかねて画像などのスクレイピングを組みたいなあと思い
やってみることに。ちなみにPHP
まず、サーバー
とりあえず、さくらサーバーでいいか無難に。
んー参考になりそうなサイトをピックアップ
使うライブラリはSimple HTML DOM Parserが定番?なのかな
重いという意見も見かけたけどまあやってみる
下記のコードはすごいシンプルでわかりやすいんじゃないかな?
PHPで画像まとめサイトをスクレイピング #01 - KYOHON
<?php require_once('./simple_html_dom.php'); $html = file_get_html('ここにURLを入れる'); foreach ($html->find('a') as $link_path) { $img_path = $link_path->getAttribute('href'); if (preg_match('/\.jpg$|\.png$|\.jpeg$/', $img_path)) { GetNijigen($img_path); } } function GetNijigen($img_path){ $img_info = getimagesize($img_path); if ($img_info[0] >= 400 && $img_info[1] >= 400) { $extension = explode('.', $img_path); $img_ext = end($extension); $upload_name = sha1(date('Y-m-d H:i:s').$img_path).'.'.$img_ext; $img_data = file_get_contents($img_path); file_put_contents('./'.$upload_name,$img_data); } }
ふむふむなんとなくわかった気がする。
じっさいテストしてみると、指定したURLの画像がサーバーに入ってる!すごい
問題はこの画像をDBにいれること
mysqlでinsertするだけなら簡単じゃん?とか思ってやってみると
できない。
mysqli_query( 'INSERT INTO test (test) VALUES ( "'.$hensu.'" )');
だめ
いろいろためし最終的にこれでも
mysql_query('INSERT INTO test SET test="test"');
Warning: mysql_query(): No such file or directory in /
Warning: mysql_query(): A link to the server could not be established in /
たくさんエラーでました
はあinsertもできない自分がいやになる。
ちょっと調べて
$PDOと$stmtでエラーは出なくなったけどうまくDBにとばせない
おそらく変数とかのもんだいかな
うーむ
とまあこんなかんじでまだできていません。
次回はできたら書くかな