CodeIgniter + phpQuery でスクレイピング


競合他社の情報をサイト上から抽出するいわゆるスクレイピングを行う業務があり、Google 先生で色々と調べたところ、phpQueryを用いるのが良さげであるとのこと。「Uploaded」が「May 2, 2009」と10年以上前であることに不安を持ちつつ PHP7.3 の環境で動くことを確認。

ただし、CodeIgniter 上で動かしたいため、Google 先生で見つけたCodeIgniterでphpQueryを使ってスクレイピングする方法を参考に実施してみた。

  • CodeIgniter v3.1.0
  • PHP7.3.16

上の環境で参考ページの通り、ダウンロードした phpQuery-onefile.php を phpquery_helper.php とファイル名を変更し、タイプミス1箇所を修正して、application/helpers のフォルダにアップ。

Controller で次のように記述することにより動くことを確認。

$this->load->helper('phpQuery');
$html = file_get_contents("https://www.of-mokuren.com/");
$page = phpQuery::newDocument($html);
foreach( $page as $dom )
{
	echo( pq( $dom )->find('h3') );
}

インターネット上にある競合他社の情報(商品データ等)を自動的に入手するシステムをご要望である場合は当オフィスまでお気軽にご連絡下さい。お見積もり・ご相談は無料です。