Heim > Backend-Entwicklung > PHP-Tutorial > PHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur

PHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur

PHP中文网
Freigeben: 2023-04-09 15:28:01
nach vorne
6311 Leute haben es durchsucht

PHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur

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 (&#39;./vendor/autoload.php&#39;);
use QL\QueryList;
//进入网页
$jar = new \GuzzleHttp\Cookie\CookieJar;
$client = new GuzzleHttp\Client([&#39;cookies&#39; => true]);
$ql = $client->request(&#39;GET&#39;, &#39;https://www.baidu.com&#39;, [
    &#39;cookies&#39; => $jar
]);
if($ql->getStatusCode()!=200){
    echo &#39;网站状态不正常&#39;;die;
}
echo  $ql->getBody();
Nach dem Login kopieren

PHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur

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(&#39;GET&#39;, &#39;https://www.baidu.com&#39;, [
    &#39;cookies&#39; => $jar,
    &#39;headers&#39; => [
    &#39;Accept-Encoding&#39; => &#39;gzip, deflate, br&#39;,
    &#39;Accept&#39;     => &#39;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8&#39;,
    &#39;Accept-Language&#39;      => &#39;zh-CN,zh;q=0.9,en;q=0.8&#39;,
    &#39;Cache-Control&#39;      => &#39;no-cache&#39;,
    &#39;Connection&#39;      => &#39;keep-alive&#39;,
    &#39;User-Agent&#39;      => &#39;Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36&#39;,
]
]);
Nach dem Login kopieren

Ich habe es getestet und die Website geöffnet.

PHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur

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
Nach dem Login kopieren

3. Installieren Sie npm

4. Installieren Sie @nesk /puphpeteer

yum install nodejs
Nach dem Login kopieren

5.PHP aktiviert proc_open

Der Code lautet wie folgt:

npm install @nesk/puphpeteer
Nach dem Login kopieren

$rt ist meine Ergebnismenge, drucken Sie sie wie folgt aus

PHP implementiert das Crawlen von Baidu-Suchergebnissen und analysiert die Datenstruktur

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!

Verwandte Etiketten:
php
Quelle:cnblogs.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