phpQueryでスクレイピング②:必要な要素だけを取得して表示してみる

Backend


前回のphpQueryでスクレイピング①:情報を取得して表示してみるでは
スクレイピングで取得したデータを全て表示しました。

今回は必要な要素だけを取得して表示する方法について書きます。


前回のおさらいとしてスクレイピングして全て表示するコードを載せます。
※以下のコードで動かすにはphpQuery-onefile.phpのダウンロードが必要です

<?php
    require "phpQuery-onefile.php";                 // スクレイピングのためのライブラリを読み込み
    $html=file_get_contents("https://jmty.jp/");    // 外部ページを取得
    echo $html;                                     // 表示
?>


前回はこれで取ってきたページをそのまま全て表示していましたが、今回はここから記述を加えて必要な情報だけを取得していきます。




①DOMをphpで取得できる形に整形する

<?php
    require 'phpQuery-onefile.php';                     // スクレイピングのためのライブラリを読み込み
    $html   = file_get_contents('https://jmty.jp/');    // 外部ページを取得
    $htmldoc= phpQuery::newDocument($html);             // phpQueryで扱える形式に変換
?>




②ClassやIdで欲しい要素を取得する

$links = $htmldoc->find("○○"); // セレクタ指定で要素取得(○○=Class名やId名)



○○には取得したい要素のClass名やId名を要素の検証で調べて入れます.
下記のようにp-article-simple-item-titleというクラス名を持つ要素を取得したい場合は上の○○に.p-article-simple-item-titleと入れます.





③データを表示する

先ほど取得した要素を表示して、ちゃんと取得できたか確認してみましょう。

echo $links;




無事取得できたようです。

以上、phpQueryのスクレイピングでデータを取得して必要な要素だけを表示する方法でした。




connaiconnai

ソースコード全文

最後にコードを全文載せておきます。

<?php
    require 'phpQuery-onefile.php';                 // スクレイピングのためのライブラリを読み込み
    $html   = file_get_contents('https://jmty.jp/');// 外部ページを取得
    $htmldoc= phpQuery::newDocument($html);         // phpQueryで扱える形式に変換
    $links  = $htmldoc->find("○○");                 // セレクタ指定で要素取得(○○=Class名やId名)
    echo $links;                                    // 表示
?>




こちらにphpQueryの操作一覧を載せています。
phpQueryのDOM操作一覧

コメント

タイトルとURLをコピーしました