Maison >développement back-end >tutoriel php >Comment PHP utilise-t-il QueryList pour collecter facilement des pages js rendues dynamiquement ?

Comment PHP utilise-t-il QueryList pour collecter facilement des pages js rendues dynamiquement ?

青灯夜游
青灯夜游original
2018-09-10 17:31:193694parcourir

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);
Obtenez 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] => 喜极而泣,都教授终于回到地球了!    //....)
Utilisez 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'
])
3 .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 le fichier cookie localement :

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Articles Liés

Voir plus