Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet QueryList, um auf einfache Weise dynamisch gerenderte JavaScript-Seiten zu sammeln

PHP verwendet QueryList, um auf einfache Weise dynamisch gerenderte JavaScript-Seiten zu sammeln

藏色散人
Freigeben: 2023-04-07 16:34:01
nach vorne
3157 Leute haben es durchsucht

QueryList verwendet jQuery zur Sammlung und verfügt über eine Fülle von Plug-Ins.

Im Folgenden wird gezeigt, wie QueryList das PhantomJS-Plug-in verwendet, um von JS dynamisch erstellte Seiteninhalte zu erfassen.

Empfohlen: „PHP-Tutorial

Installation

Verwenden Sie Composer zur Installation:

QueryList installieren

composer require jaeger/querylist
GitHub: https://github.com/jae-jae/QueryList
Nach dem Login kopieren

PhantomJS-Plug-in installieren

composer require jaeger/querylist-phantomjs
GitHub: https://github.com/jae-jae/QueryList-PhantomJS
Nach dem Login kopieren

PhantomJS-Binärdatei herunterladen

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

Plug-in-API

QueryList-Browser($url,$debug = false,$commandOpt = []): Verwenden Sie den Browser, um die Verbindung zu öffnen

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 und der Inhalt ist rein dynamisch gerendert.

Im Folgenden wird die Verwendung des PhantomJs-Plug-Ins für QueryList demonstriert:

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

Beispiel-1

Dynamisch gerendertes HTML abrufen:

$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

Beispiel 2

Anpassen einer komplexen Anfrage:

$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

Debug-Modus aktivieren und Cookie-Dateien lokal laden:

$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 vonPHP verwendet QueryList, um auf einfache Weise dynamisch gerenderte JavaScript-Seiten zu sammeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
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