Wie verwendet PHP QueryList, um auf einfache Weise dynamisch gerenderte js-Seiten zu sammeln?

青灯夜游
Freigeben: 2023-04-04 06:48:02
Original
3609 Leute haben es durchsucht

In diesem Kapitel erfahren Sie, wie PHP QueryList verwenden kann, um js dynamische Rendering-Seiten zu sammeln. Ich hoffe, dass es für Sie hilfreich ist.

QueryList verwendet jQuery zur Sammlung und verfügt über eine Fülle von Plug-Ins. Lassen Sie uns demonstrieren, dass QueryList das PhantomJS-Plug-in verwendet, um den von JS dynamisch erstellten Seiteninhalt zu erfassen.

1. Installation

Verwenden Sie Composer zur Installation:

1. Installieren Sie QueryList

composer require jaeger/querylist
Nach dem Login kopieren

GitHub : https://github.com/jae-jae/QueryList

2. Installieren Sie das PhantomJS-Plugin

composer require jaeger/querylist-phantomjs
Nach dem Login kopieren

GitHub: https://github .com/ jae-jae/QueryList-PhantomJS

2. Laden Sie die PhantomJS-Binärdatei herunter

Offizielle PhantomJS-Website:http:// phantomjs.org, laden Sie die PhantomJS-Binärdatei für die entsprechende Plattform herunter.

3. Plug-in-API

QueryList-Browser($url,$debug = false,$commandOpt = []): Browser verwenden , um Connect zu öffnen

4. Verwenden Sie

Nehmen Sie die mobile Version von „Today's Toutiao“ als Beispiel. Die mobile Version von „Today's Toutiao“. " basiert auf dem React-Framework. Der Inhalt wird rein dynamisch gerendert.

Das Folgende zeigt die Verwendung des PhantomJs-Plugins für QueryList:

1. Installieren Sie das 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');
Nach dem Login kopieren

2.Beispiel-1

Dynamisch gerendertes HTML erhalten:

$html = $ql->browser('https://m.toutiao.com')->getHtml();
print_r($html);
Nach dem Login kopieren

Alle p-Tag-Textinhalte abrufen:

$data = $ql->browser('https://m.toutiao.com')->find('p')->texts();
print_r($data->all());
Nach dem Login kopieren

Ausgabe:

Array(
    [0] => 自拍模式开启!国庆假期我和国旗合个影
    [1] => 你旅途已开始 他们仍在自己的岗位上为你的假期保驾护航
    [2] => 喜极而泣,都教授终于回到地球了!    //....)
Nach dem Login kopieren

HTTP-Proxy verwenden:

// 更多选项可以查看文档: 
http://phantomjs.org/api/command-line.html
$ql->browser('https://m.toutiao.com',true,[    
// 使用http代理 
'--proxy' => '192.168.1.42:8080',    '--proxy-type' => 'http'
])
Nach dem Login kopieren

3.Beispiel- 2

Passen Sie eine komplexe Anfrage an:

$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());
Nach dem Login kopieren

Aktivieren Sie den Debug-Modus und laden Sie die Cookie-Datei lokal:

$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());
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verwendet PHP QueryList, um auf einfache Weise dynamisch gerenderte js-Seiten zu sammeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage