Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Crawler-Praxis: Baidu-Suchergebnisse crawlen

PHP-Crawler-Praxis: Baidu-Suchergebnisse crawlen

WBOY
WBOYOriginal
2023-06-13 12:39:262031Durchsuche

Mit der Entwicklung des Internets können wir über verschiedene Suchmaschinen problemlos verschiedene Informationen erhalten. Für Entwickler ist es eine sehr wichtige Fähigkeit, verschiedene Daten von Suchmaschinen zu erhalten. Heute lernen wir, wie man mit PHP einen Crawler zum Crawlen von Baidu-Suchergebnissen schreibt.

1. Wie Crawler funktionieren

Bevor wir beginnen, wollen wir zunächst die Grundprinzipien der Funktionsweise von Crawlern verstehen.

  1. Zuerst sendet der Crawler eine Anfrage an den Server, um den Inhalt der Website anzufordern.
  2. Nachdem der Server die Anfrage erhalten hat, gibt er den Inhalt der Webseite zurück.
  3. Nach Erhalt des Inhalts analysiert der Crawler ihn mithilfe regulärer Ausdrücke und anderer Methoden, um die erforderlichen Daten zu extrahieren.
  4. Abschließend speichert der Crawler die Daten in einer Datenbank oder Datei.

2. Der Prozess des Crawlens der Baidu-Suchergebnisse

  1. Erstellen der Anforderungs-URL

Zuerst müssen wir die Anforderungs-URL basierend auf Schlüsselwörtern erstellen. Am Beispiel der Suche nach „PHP-Crawler“ lautet die Anforderungs-URL: https://www.baidu.com/s?ie=UTF-8&wd=PHP%20%E7%88%AC%E8%99%AB

Darunter bedeutet =UTF-8 die Verwendung der UTF-8-Kodierung; auf wd= folgt das Suchwort.

  1. Senden Sie eine Anfrage, um den Seiteninhalt abzurufen

In PHP können wir die cURL-Bibliothek verwenden, um HTTP-Anfragen zu senden. Der spezifische Implementierungscode lautet wie folgt:

<?php
function curl_request($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

$url = 'https://www.baidu.com/s?ie=UTF-8&wd=PHP%20%E7%88%AC%E8%99%AB';
$html = curl_request($url);
echo $html;
?>

Hier verwenden wir die Funktion „curl_request()“, um eine Anfrage zu senden und den Seiteninhalt abzurufen.

  1. Seiteninhalt analysieren

Als nächstes müssen wir reguläre Ausdrücke verwenden, um den Seiteninhalt zu analysieren und die für Suchergebnisse erforderlichen Daten zu extrahieren. Wir können die Entwicklertools des Browsers verwenden, um den Seitenquellcode anzuzeigen, die HTML-Elemente zu finden, die den erforderlichen Daten entsprechen, und dann reguläre Ausdrücke zum Abgleichen verwenden.

Zum Beispiel möchten wir den Titel und den Link der Suchergebnisse erhalten. Der folgende Code kann aus dem Quellcode der Seite gefunden werden:

<h3 class="t"><a href="链接地址" target="_blank">标题</a></h3>

Wir können den folgenden regulären Ausdruck für den Abgleich verwenden:

$pattern = '/<h3 class="t"><a([sS]*?)href="(.*?)"[sS]*?>([sS]*?)</a></h3>/';
preg_match_all($pattern, $html, $matches);

Hier verwenden wir die Funktion preg_match_all() zum Implementieren des regulären Ausdrucksabgleichs und zum Speichern der Abgleichsergebnisse in der Variablen $matches.

  1. Ergebnisse ausgeben

Abschließend geben wir die extrahierten Suchergebnisse aus, um die gewünschten Daten zu erhalten. Der spezifische Implementierungscode lautet wie folgt:

 $url) {
    echo ($key + 1) . '、' . $matches[3][$key] . '
'; } ?>

Hier verwenden wir eine foreach-Schleife, um die übereinstimmenden Links und Titel zu durchlaufen und die Ergebnisse auf der Seite auszugeben.

3. Zusammenfassung

Durch die Einleitung dieses Artikels verstehen wir die Grundprinzipien des PHP-Crawlers und wie man PHP zum Crawlen von Baidu-Suchergebnissen verwendet. Gleichzeitig haben wir auch festgestellt, dass der Einsatz von Crawlern die Beachtung rechtlicher, ethischer und anderer Aspekte erfordert. Wir müssen uns an die einschlägigen Vorschriften halten und dürfen keine illegalen oder illegalen Crawling-Vorgänge durchführen.

Das obige ist der detaillierte Inhalt vonPHP-Crawler-Praxis: Baidu-Suchergebnisse crawlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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