以下の内容はhttps://www.utakata.work/entry/php/introduce-phpqueryより取得しました。


PHPでサクッとWebスクレイピングするならphpQuery

f:id:yoshiki_utakata:20181004212834j:plain

composer で phpQuery をインストールする

Composer が入っている前提とします。

composer require electrolinux/phpquery

htmlをパースする

Guzzleでリクエストをして、返ってきたHTMLをパースするとする。

<?php

$guzzle = \GuzzleHttp\Client();
$response = $guzzle->get(...);

// response body の contents に string で html が入っている
$html = $response->getBody()->getContents();

// phpQuery の newDocument に string を渡すとパースされる
use phpQuery
$parsed = phpQuery::newDocument($html);

// form タグの action(url) を取得する。
// find は CSS セレクタなどが利用できる
// attr で属性が取得できる
// <form class="upload" action="/api/upload"> の
// /api/upload を取得できる
$actionUrl = $html->find('form.upload')->attr('action');

まとめ

セレクタまわりの仕様は変わることもないので、 phpQuery はずっと動き続けることでしょう。




以上の内容はhttps://www.utakata.work/entry/php/introduce-phpqueryより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14