PHPで簡単なWEBスパイダーを作ろうと思ったのは、クライアントからリサーチを頼まれたからだ。
あるサイト内の膨大な情報の中から必要な情報を抜きだし、巡回していってエクセルに吐き出す、というものだ。
で、出来上がったのだけれども、アクセス先に相当な負荷がかかるので一般公開をしようか迷ったあげく、ヒントを羅列しようと考え直した。
phpの知識は必要だが、それほど難しいことは要求されないレベルなので初心者でも根気さえあればOK
以下は使った関数
●パラメータ周り(いらないかも)
・if(isset($_GET['ほげ']))
・if($_POST["ほげ"])
●アクセス先のページ情報をゲットする
・file_get_contents
●アクセス先がPHPからのアクセスを拒否するかもしれないのでユーザーエージェントを偽装
・stream_context_create(array('http' => array(
'method' => 'GET',
'header' => 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',)));
●取ってきたページ内のHTML情報から以下を使って解体抜き出しなぞを行う。
・sprintf
・preg_replace
・preg_match_all
・strip_tags
●書き出しCSVの操作
・fopen
・fputcsv
・fclose
●標準で使う
foreach for if などなど。
これらを組み合わせることで簡単なWEBスパイダーが作れるわけだ。
ま、PHPを知っている人なら赤子の手をひねるようなものだろう。