ショコラ
phpQueryObject のサンプルプログラム
時々スクレイピングする時にキメマス。
simple_html_dom は PHP8 で動作しません。(パッチを当てれば…)
ドキュメント
https://blackgreen.by/test/phpQuery/api-reference/li_phpQuery.html
もっさん先輩
手順
- PHPコンテナを起動します。
docker run --rm -it php bash
- apt-get アップデートします。
apt-get update
- apt-get アップデートします。
apt-get install -y unzip
- コンポーザーをインストールします。
curl -sS https://getcomposer.org/installer | php &&\
mv composer.phar /usr/local/bin/composer &&\
chmod a+x /usr/local/bin/composer
- phpquery をインストールします。
composer require electrolinux/phpquery
- 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
- テストプログラムを作ってみます。
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
- テストプログラムを実行します。
php dom.php
以上