QueryList utilise jQuery pour la collection et dispose d'une multitude de plug-ins.
Ce qui suit montre comment QueryList utilise le plug-in PhantomJS pour capturer le contenu de la page créé dynamiquement par JS.
Recommandé : "Tutoriel PHP"
Installation
Utilisez Composer pour installer :
Installer QueryList
composer require jaeger/querylist GitHub: https://github.com/jae-jae/QueryList
Installer le plug-in PhantomJS
composer require jaeger/querylist-phantomjs GitHub: https://github.com/jae-jae/QueryList-PhantomJS
Télécharger le fichier binaire PhantomJS
Site officiel de PhantomJS : http://phantomjs.org, téléchargez le fichier binaire PhantomJS pour la plateforme correspondante.
API du plug-in
Navigateur QueryList ($url,$debug = false,$commandOpt = []) : utilisez le navigateur pour ouvrir la connexion
Utiliser
Prenons l'exemple de la version mobile de "Today's Toutiao" La version mobile de "Today's Toutiao" est basée sur le framework React, et le contenu est purement dynamique. rendu.
Ce qui suit montre l'utilisation du plug-in PhantomJs pour QueryList :
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');
Exemple-1
Obtenir un rendu HTML dynamique :
$html = $ql->browser('https://m.toutiao.com')->getHtml(); print_r($html);
Obtenir tout le contenu du texte de la balise p :
$data = $ql->browser('https://m.toutiao.com')->find('p')->texts(); print_r($data->all());
Sortie :
Array ( [0] => 自拍模式开启!国庆假期我和国旗合个影 [1] => 你旅途已开始 他们仍在自己的岗位上为你的假期保驾护航 [2] => 喜极而泣,都教授终于回到地球了! //.... )
Utiliser le proxy http :
// 更多选项可以查看文档: http://phantomjs.org/api/command-line.html $ql->browser('https://m.toutiao.com',true,[ // 使用http代理 '--proxy' => '192.168.1.42:8080', '--proxy-type' => 'http' ])
Exemple-2
Personnaliser une requête complexe :
$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());
Activer le mode débogage et charger les fichiers cookies localement :
$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; },true,[ '--cookies-file' => '/path/to/cookies.txt' ])->rules([ 'title' => ['p','text'], 'link' => ['a','href'] ])->query()->getData(); 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!