RSSが配信されているようなサイトだとsimplexml_load_fileで簡単に取得し整形することができますが、RSSが配信されてなかったり静的HTMLだったりする場合は少々やっかいです。file_get_contentsで丸ごと取得して正規表現で該当部分だけ抜き出すといった方法が考えられますが、それほど自由度が高くありません。
そのような場合にSimple HTML DOM Parserというライブラリを使うことで、ものすごく簡単に好きなページの好きな部分を取得することができます。
たとえばライブドアのブログランキング一覧ページの記事部分のみを取得した場合、以下のようになります(なんでこのページRSSを配信してないんだろう・・・)。
見た目を整えるためにCSSを使っていますが、実際の取得部分のPHPは以下の通りです。
取得して出力するだけならほんの数行でできてしまいます。
1 2 3 4 5 6 7 8 9 10 11 |
<?php require_once 'simple_html_dom.php'; //取得ページのURL $url = 'http://blog.livedoor.com/ranking/'; $html = file_get_html($url); //jQueryのセレクタのような感じで取得したい要素を指定 foreach($html->find('#rankingBlog ul li div.txt,#rankingBlog ul li div.head') as $elem){ echo $elem; } ?> |
よくない使い方をするとパクりサイトやコピペサイトを量産できてしまいますが、echoの部分をfile_put_contentsにしてファイルに書き出したり、WordPressを使うならwp_insert_postを使って記事として投稿させたりして自由な運用ができます。
ADs
コメントはまだありません。