phpQueryObject のサンプルプログラム

ショコラ
ショコラ

phpQueryObject のサンプルプログラム

時々スクレイピングする時にキメマス。
simple_html_dom は PHP8 で動作しません。(パッチを当てれば…)
ドキュメント
https://blackgreen.by/test/phpQuery/api-reference/li_phpQuery.html

もっさん先輩
もっさん先輩

手順

  1. PHPコンテナを起動します。
docker run --rm -it php bash
  1. apt-get アップデートします。
apt-get update
  1. apt-get アップデートします。
apt-get install -y unzip
  1. コンポーザーをインストールします。
curl -sS https://getcomposer.org/installer | php &&\
 mv composer.phar /usr/local/bin/composer &&\
 chmod a+x /usr/local/bin/composer
  1. phpquery をインストールします。
composer require electrolinux/phpquery
  1. phpQueryObject.php にパッチを当てます。
curl -LO https://answorz.com/4952/phpQueryObject.php.patch
patch /vendor/electrolinux/phpquery/phpQuery/phpQuery/phpQueryObject.php phpQueryObject.php.patch
curl -LO https://answorz.com/4952/DOMDocumentWrapper.php.patch
patch /vendor/electrolinux/phpquery/phpQuery/phpQuery/DOMDocumentWrapper.php DOMDocumentWrapper.php.patch
  1. テストプログラムを作ってみます。
cat <<'EOF' > dom.php
<?php
require './vendor/autoload.php';
$html = '<html><title>Hello Answorz!</title><body><p>Hello mossan</p><p>Hello Chocolat</p></body></html>';
$dom = phpQuery::newDocument($html);
echo $dom['title']->text(),PHP_EOL;
foreach ($dom['p'] as $elem) {
  echo pq($elem)->text(),PHP_EOL;
}
EOF
  1. テストプログラムを実行します。
php dom.php

以上

Scroll to Top