最近だとPythonでスクレイピングを行うのが、最近のトレンドだと思うけど、あえてPHPで行う!
「PHP スクレイピング」で検索するとだいたい「phpQuery」でする方法が出てくる。
今では全く更新されていないライブラリ(なにより最近のPHPのバージョンでは動作しない)なので、今回は「phpQuery」は使用せず、代わりに「php-html-parser」を使用して実行してみる。
「php-html-parser」を使用してPHPでwebスクレイピング
では早速やっていきます。
「php-html-parser」のダウンロード
こちらから「php-html-parser」をダウンロードします。
ダウンロードが完了したら、今回使用するファイルは「simple_html_dom.php」のみ。
「simple_html_dom.php」を読み込む
こんな感じで「simple_html_dom.php」を読み込みます。
<?php
require_once __DIR__ . '/simple_html_dom.php';
?>
外部サイトの特定の場所を取得
classで取得したいところ絞って、foreachでぶん回す感じです。
(htmlは、省略してます)
<?php
//URLからデータを取得
$html = file_get_html( 'http://sample.com/' );
//classから要素取得
foreach($html->find('.text') as $element){ // .textを取得したclassに変更
echo $element;
}
?>
あとはアップするだけで、指定のURLの指定しているclassのHTMLを丸ごと取得できます。
今回はざっくり外部サイトのHTMLを取得してみました。
「php-html-parser」を使えば楽に取得できるのでマジ最高ですね!
ABOUT ME