phpQueryのDOM操作一覧

Backend


phpQueryを初めて扱ったときにDOM操作がすごく大変だったので、
よく使う操作一覧を残します。

まず、外部ページを取得してPHPQueryで扱える形に整形する部分を載せておきます。

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

phpQueryを使用するにはphpQuery.phpファイルをダウンロードする必要があります。
https://code.google.com/archive/p/phpquery/downloads





※下記の記事でphpQueryの準備や具体的な使い方を記しているので、phpQueryを初めて使う方はご参考ください。
phpQueryでスクレイピングを行う



クラス名で取得

※クラス名の前にドットを忘れないこと

$elements=$htmldoc->find(".クラス名");




id名で取得

#を忘れないこと

$element=$htmldoc->find("#id名");




タグ名で取得

$elements=$htmldoc->find("タグ名");




connaiconnai

aタグのhrefを取得

$elements=$htmldoc->find("aタグのクラス名");
for($i=0; $i<count($elements); $i++){
  $link=$htmldoc->find("aタグのクラス名:eq($i)")->attr("href");
  echo $link;
}




imgタグのsrcを取得

$elements=$htmldoc->find("imgタグのクラス名");
for($i=0; $i<count($elements); i++){
  $imglink=htmldoc->find("imgのクラス名:eq($i)")->attr("src");
  echo $imglink;
}




取得したい要素のクラス名やID名がない時

$elements=$htmldoc->find("取得する要素の親のクラス名 or ID名");
for($i=0; $i<count($elements); $i++){
  $htmldoc->find("取得する要素の親のクラスorID:eq($i)")->find("取得要素のタグ名");
  echo $element;
}

コメント

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