Ce chapitre vous présentera comment PHP peut utiliser QueryList pour collecter facilement des pages de rendu dynamique js ? Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela vous sera utile.
QueryList utilise jQuery pour la collection et dispose d'une multitude de plug-ins. Montrons que QueryList utilise le plug-in PhantomJS pour capturer le contenu de la page créé dynamiquement par JS.
1. Installation
Utilisez Composer pour installer :
1. Installer QueryList
composer require jaeger/querylist
GitHub : https://github.com/jae-jae/QueryList
2. Installez le plug-in PhantomJS
composer require jaeger/querylist-phantomjs
GitHub : https :// github.com/jae-jae/QueryList-PhantomJS
2. Téléchargez le fichier binaire PhantomJS
PhantomJS officiel site web : http://phantomjs.org, téléchargez le fichier binaire PhantomJS correspondant à la plateforme.
3. API du plug-in
Navigateur QueryList ($url,$debug = false,$commandOpt = []) : ouvrir avec un navigateur Connectez-vous
4. Utilisez
Prenons comme exemple la version mobile de « Toutiao d'aujourd'hui ». " est basé sur le framework React. Le contenu Il est rendu purement dynamique.
Ce qui suit montre l'utilisation du plug-in PhantomJs de QueryList :
1 Installez le plug-in
use QL\QueryList; use QL\Ext\PhantomJs; $ql = QueryList::getInstance(); // 安装时需要设置PhantomJS二进制文件路径 $ql->use(PhantomJs::class,'/usr/local/bin/phantomjs'); //or Custom function name $ql->use(PhantomJs::class,'/usr/local/bin/phantomjs','browser');
2.Exemple-1
<🎜. >Obtenez un rendu HTML dynamique :$html = $ql->browser('https://m.toutiao.com')->getHtml(); print_r($html);
$data = $ql->browser('https://m.toutiao.com')->find('p')->texts(); print_r($data->all());
Array( [0] => 自拍模式开启!国庆假期我和国旗合个影 [1] => 你旅途已开始 他们仍在自己的岗位上为你的假期保驾护航 [2] => 喜极而泣,都教授终于回到地球了! //....)
// 更多选项可以查看文档: http://phantomjs.org/api/command-line.html $ql->browser('https://m.toutiao.com',true,[ // 使用http代理 '--proxy' => '192.168.1.42:8080', '--proxy-type' => 'http' ])
$data = $ql->browser(function (\JonnyW\PhantomJs\Http\RequestInterface $r){ $r->setMethod('GET'); $r->setUrl('https://m.toutiao.com'); $r->setTimeout(10000); // 10 seconds $r->setDelay(3); // 3 seconds return $r; })->find('p')->texts(); print_r($data->all());
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!