勇者コレクター攻略日記

元々はプロのプログラマがレビューする転職情報。今は勇者コレクターの攻略がメイン

PHPでスクレイピングとかクローラーとか

   

今日、なんとなーく
PHPでスクレイピングしたり
クローラー作ったりしてーなー、と思って
色々と検索してたら
hlmlSQLってのがあるけど若干古い。

もちっと探すと
PHP Simple HTML DOM Parserってのがある。

ウェブ上の必要なデータを抽出する方法-スクレイピング-
http://php-fan.org

これが一番やりたい感じに近いかなー

サンプルは
http://www.asahi.com/ からの
ヘッドライン取得らしい

で、何も考えずに走らせてみたらこんなエラー

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: そのようなホストは不明です。 in C:\XXX\simple_html_dom.php on line 70
Warning: file_get_contents(http://www.asahi.com/) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: そのようなホストは不明です。 in C:\XXX\simple_html_dom.php on line 70
Fatal error: Call to a member function find() on a non-object in C:\XXX\sample.php on line 7

proxyかあ・・・

調べてみたらfile_get_htmlの第3引数は$contextとして、
そのままfile_get_contentsに渡されるので
proxyの設定方法を適当に検索して

$proxy = array(
 ”http” => array(
  ”proxy” => “tcp://プロキシHOST:ポート”,
  ’request_fulluri’ => true,
 ),
);
$proxy_context = stream_context_create($proxy);

の $proxy_contextを第3引数に渡したら動いた
じゃあ、あとはこれをちょこちょこ改良して
cronでごにょごにょしてメール連携して
アレゲなものを作ろうかな。

 - 未分類 , ,