スクレイピングツールの開発方法 PHP+Cronで自動化

スクレイピングツールを作成する際、いくつかの手順があります。

  • スクレイピング対象サイトを選定する部分
  • スクレイピング対象サイトから対象をのページを選定する部分
  • スクレイピングしたページを適当に整形する部分
  • WordPressやLivedoorブログ等に投稿する部分

このうち、対象を選定する部分は、ランダムで回したり、
その時間はこのサイトをといった形で振り分けることが可能です。

今回、スクレイピング対象サイトから対象のページを選定する部分についてお話したいと思います。

選定するとはどういうことか。

ブログサイトならば、新着記事、
ショッピングサイトなら新着商品等、
自動で更新し続けるサイトを作るならば、新しい記事を取得し続けられるようにしなければなりません。
方法は、RSSか、最新記事リストをスクレイピングする方法があります。

RSSから取得する場合

$url=○○○(RSSURL)
libxml_use_internal_errors(true)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE)->curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$html = curl_exec($ch);
curl_close($ch);
$rss = simplexml_load_string($html,'SimpleXMLElement', LIBXML_NOCDATA);
これで、RSSからリストを取得することがまず叶います。
 ここから、RSSの種類に応じて、取得する内容を変更します。
 大きく分けて、
$rss->item

が記事リストになっているものと、

$rss->chanel->item
あるいは
$rss->channel->item

の2種類があります。
これらを順番にforeachで取得し、整形していきます。
どれに対応しているかは少し失念してしまいましたが、三通りのうちの一つは以下のように配列化していました。

if(!preg_match('/^PR:/',$item->title )){
 if($i > $max){
 $timestamp = strtotime( $item->pubDate );
 $date = date( 'Y.m.d',$timestamp );
 $rssurls->push(["date"=>(string)$item->pubDate,"url"=>(string)$item->link,"permalink"=>(string)$item->link,"title"=>(string)$item->title,"category"=>(string)$item->children("dc",true)->subject]);
 $i++;
 }
 }

URL、投稿日時、パーマリンク、タイトル、カテゴリーの順です。

タグもたしか取得できましたが、今回使用したスクリプトには入れていなかったので省略しています。
if(!preg_match(‘/^PR:/’,$item->title )) の部分は、実は、アメブロかどこかのブログの場合に必要で、
PR広告である場合を排除しています。

新着記事リストを取得できたならば、ランダムで選択する事や、まだ取得していない記事を取得することなどが叶います。

ここからが、スクレイピングのスタートです。

次回に続く。

ビットコインを毎日受け取る最新HYIP特集

PR:BitConnect

体感:一年以上継続中

月利:最大月利40%、日利0〜1.5%周辺
期間:120日〜299日
最小投資単位:$100
参加する

PR:Bitpetite

体感:比較的安心

日利:3.60%〜4.5%
期間:6週間〜9週間
最小投資単位:0.005ビットコイン
参加する

PR:BitDragon

体感:潰れる前提で

日利:9%〜12%
元本:しない
期間:永遠に
最小投資単位:0.001ビットコイン
参加する
HYIPは高リターン高リスク商材ですので、リスク管理を各自行ってください。

新着記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトについて

このサイトはネットビジネスで稼ぐとなっていますが、筆者本人はネットビジネスは嫌いです。
「ネットビジネスで一緒にビジネスをしましょう!」と、言葉では説明しているものの、あくまでも「貴方はお客様です」。
なので、本当にネットでビジネスをするとはどういう事かをここで書いていければなと思います。
連絡はこちらまでinfo@omorovie.com