PHPでスクレイピングの記事が投稿されていたので、自分のやり方をメモ。
$body = file_get_contents( $url ); //$body = mb_convert_encoding($body, 'UTF-8', 'sjis-win'); // 文字コードが違えば // HTMLが間違っている場合があるので、tidyを通して綺麗にする。 $tidy_obj = new tidy; $tidy_obj->parseString( $body, array(), 'utf8'); $tidy_obj->cleanRepair(); $body = $tidy_obj->html(); unset( $tidy_obj ); // 分解 $dom = new DOMDocument; $dom->encoding = 'UTF-8'; $dom->preserveWhiteSpace = false; $dom->loadHTML( $body ); $xpath = new DOMXPath( $dom ); unset( $dom ); $nodes = $xpath->evaluate( "//div[@class='category']/div/p/a" );
という感じ。
HTMLが間違っていると、DOMDocumentが正しく認識できないときがあるので、tidyを通して綺麗にするのがポイント。
あとはxpathで、取りたいオブジェクトを引っ張ってこられる。
0 件のコメント:
コメントを投稿