前回のphpQueryでスクレイピング①:情報を取得して表示してみるでは
スクレイピングで取得したデータを全て表示しました。
今回は必要な文字だけを取得して表示する方法について書きます。
前回のおさらいとしてスクレイピングして全て表示するコードを載せます。
※以下のコードで動かすにはphpQuery-onefile.phpのダウンロードが必要です
<?php
require "phpQuery-onefile.php"; //スクレイピングするためのファイル読み込み
$html=file_get_contents("○○"); //スクレイピング実行 ○○=url
echo $html; //表示
?>
前回はこれで取ってきたページをそのまま全て表示していましたが、今回はここから記述を加えて必要な情報だけを取得していきます。
①DOMをphpで取得できる形に整形する
<?php
require 'phpQuery-onefile.php'; //スクレイピングするためのファイル読み込み
$html=file_get_contents('https://jmty.jp/'); //スクレイピング実行
$htmldoc = phpQuery::newDocument($html);
?>
②ClassやIdで欲しい要素を取得する
$got_articles=$htmldoc->find("○○"); //○○=Class名やId名
○○には取得したい要素のClass名やId名を要素の検証で調べて入れます.
下記のようにp-article-simple-item-titleというクラス名を持つ要素を取得したい場合は上の○○に.p-article-simple-item-titleと入れます.

③データを表示する
echo $got_articles;
無事取得できたようです。

以上、phpQueryのスクレイピングでデータを取得して必要な文字列だけを表示する方法でした。
最後にコードを全文載せておきます。
<?php
require 'phpQuery-onefile.php'; //スクレイピングするためのファイル読み込み
$html=file_get_contents('https://jmty.jp/'); //スクレイピング実行
$htmldoc = phpQuery::newDocument($html);
$got_articles=$htmldoc->find("○○"); //○○=Class名やId名
echo $got_articles;
?>
こちらにphpQueryの操作一覧を載せています。
phpQueryのDOM操作一覧
コメント