Empfehlung: „PHP-Video-Tutorial“
PHP-Webcrawler-Praxis: Baidu-Suchergebnisse crawlen und die Datenstruktur analysieren
Baidus Suchmaschine verfügt über einen Anti-Crawler-Mechanismus. Ich habe das Wasser zunächst direkt mit Guzzle ausprobiert. Der Code lautet wie folgt:
<?php /** * Created by Benjiemin * Date: 2020/3/5 * Time: 14:58 */ require ('./vendor/autoload.php'); use QL\QueryList; //进入网页 $jar = new \GuzzleHttp\Cookie\CookieJar; $client = new GuzzleHttp\Client(['cookies' => true]); $ql = $client->request('GET', 'https://www.baidu.com', [ 'cookies' => $jar ]); if($ql->getStatusCode()!=200){ echo '网站状态不正常';die; } echo $ql->getBody();
Baidu hat ihn direkt abgefangen und die Sprungseite aufgerufen. Ich werde versuchen, eine Browser-Header-Datei hinzuzufügen und es erneut zu versuchen.
Der geänderte Header lautet wie folgt:
$ql = $client->request('GET', 'https://www.baidu.com', [ 'cookies' => $jar, 'headers' => [ 'Accept-Encoding' => 'gzip, deflate, br', 'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Language' => 'zh-CN,zh;q=0.9,en;q=0.8', 'Cache-Control' => 'no-cache', 'Connection' => 'keep-alive', 'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', ] ]);
Ich habe es getestet und die Website geöffnet.
Wir fuhren fort, gaben Schlüsselwörter ein, suchten und stellten fest, dass es vom Sicherheitsdienst abgefangen wurde. Daher hatte ich das Gefühl, dass ich es nicht direkt mit GuzzleHttp machen konnte, also fuhr ich mit meinen Artefakten fort: jaeger/querylist und jaeger/ querylist-puppeteer.
Installationsschritte:
1. Abhängigkeiten installieren
Zuvor müssen Sie die proc_open-Funktion von PHP aktivieren, sonst kann die vollständige Installation nicht durchgeführt werden
composer install jaeger/querylist composer install jaeger/querylist-puppeteer
3. Installieren Sie npm
4. Installieren Sie @nesk /puphpeteer
yum install nodejs
5.PHP aktiviert proc_open
Der Code lautet wie folgt:
npm install @nesk/puphpeteer
$rt ist meine Ergebnismenge, drucken Sie sie wie folgt aus
Das obige ist der detaillierte Inhalt vonPHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!