何が一番ラクなんだろう?
初めてのスクレイピングはPythonだった。
次はRuby。
今は、PHPをすることにしているので、とりあえずPHPでやってみました。
phpQuery
まぁ参考になるサイトはいっぱいある。
まずは「phpQuery-onefile.php」を取得することから。
Pytho、Rubyはライブラリがどうのこうのって感じだったから、ダウンロードで済むほうが楽ね。
https://code.google.com/archive/p/phpquery/downloads
ダウンロードされたわ。ZIPファイルじゃないのね。
ダウンロードフォルダに「phpQuery-onefile.php」があった。
なので、作業するフォルダに移動してと。
スクレイピングファイルに
<?php
// phpQueryの読み込み
require_once("./phpQuery-onefile.php");
以上終わり。
あとはURLを設定して
$html = file_get_contents("http://XXXXXXX");
echo phpQuery::newDocument($html)->find("h1")->text();
これで取得できる。
まぁこれはH1タグのテキストなんだけど、私はリンクを取得したかったから
$doc = phpQuery::newDocument($html);
foreach ($doc[".section"]->find(".aaa") as $entry) {
$link = pq($entry)->find("a")->attr("href");
echo $link;
}
って感じでまぁ配列に入れてそこからそのURLに行って情報取得が最終目的だったのだけど。
最終目的の情報はとりあえず、CSVファイルに書き出し。
$file = fopen("data.csv","w");
fputcsv($file,$array);
fclose($file);
PHPのスクレイピングで躓いたのが、クラスのつなげ方かな?
foreach ($doc[".section"]->find(".aaa") as $entry) {}
この書き方がすぐにわからなくていろいろリトライしてみた。
まぁPHPも勉強レベルでまだ慣れてないってこともあるのだけど。
それでも3時間もやればデータが取得できるのは楽かもしれない。
何が一番楽だったかという話になれば、PHPかもしれない。
環境を気にしなくて済むから。