Erstellen Sie einen PHP-basierten Webcrawler

WBOY
Freigeben: 2023-05-11 12:18:02
Original
651 Leute haben es durchsucht

Mit der rasanten Entwicklung des Internets wird die Beschaffung und Nutzung von Informationen immer wichtiger. Webcrawler können uns als automatisierte Programme dabei helfen, Informationen schnell aus dem Internet zu crawlen und zu verarbeiten, wodurch die Effizienz der Informationsnutzung erheblich verbessert wird. In diesem Artikel erkläre ich, wie man mit PHP einen einfachen Webcrawler erstellt.

1. Grundkenntnisse über Webcrawler

Webcrawler ist ein automatisiertes Programm, das das Surfverhalten von Menschen auf Webseiten simulieren und relevante Informationen auf Webseiten automatisch crawlen kann. Webcrawler haben viele Einsatzmöglichkeiten, wie z. B. Suchmaschinen-Crawling, Data Mining, Preisvergleich und Inhaltsaggregation.

Der Ablauf eines Webcrawlers ist ungefähr wie folgt:

  1. Bestimmen Sie die zu crawlende Webseitenadresse.
  2. Stellen Sie eine HTTP-Anfrage an die Zielwebseite und erhalten Sie die Antwort.
  3. Extrahieren Sie die erforderlichen Daten aus der Antwort.
  4. Daten verarbeiten und speichern.

Der Kern eines Webcrawlers besteht darin, HTML-Dokumente zu analysieren und die erforderlichen Informationen zu extrahieren. In PHP können wir die DOMDocument-Klasse oder die SimpleXMLElement-Klasse verwenden, um XML-Dokumente zu analysieren, und reguläre Ausdrücke oder String-Funktionen verwenden, um HTML-Dokumente zu analysieren.

2. Erstellen Sie einen PHP-basierten Webcrawler

Im Folgenden veranschaulichen wir anhand eines praktischen Beispiels, wie Sie einen PHP-basierten Webcrawler erstellen, der Filminformationen zu Douban-Filmrankings crawlen kann.

  1. Bestimmen Sie die zu crawlende Webseitenadresse

Das Ziel, das wir crawlen möchten, sind die Rankings der Douban-Filme. Die URL lautet: https://movie.douban.com/chart.

  1. Stellen Sie eine HTTP-Anfrage an die Zielwebseite und erhalten Sie die Antwort.

In PHP können wir die cURL-Bibliothek verwenden, um eine HTTP-Anfrage zu senden und die Antwort zu erhalten. cURL ist eine Open-Source-Netzwerkbibliothek, die mehrere Protokolle wie HTTP, FTP, SMTP usw. unterstützt.

Hier ist ein Beispiel für die Verwendung der cURL-Bibliothek zum Senden einer HTTP-Anfrage:

$url = "https://movie.douban.com/chart";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

Im obigen Code definieren wir zunächst die zu verwendende Webseitenadresse durchsuchte $ URL und verwenden Sie die Funktion „curl_init()“, um eine cURL-Sitzung zu initialisieren. Verwenden Sie dann die Funktion „curl_setopt()“, um Curl-Optionen festzulegen, z. B. die anzufordernde URL, ob eine Antwort zurückgegeben werden soll usw. Verwenden Sie abschließend die Funktion „curl_exec()“, um die HTTP-Anfrage zu senden, die Antwort abzurufen, und verwenden Sie die Funktion „curl_close()“, um die cURL-Sitzung zu schließen.

  1. Extrahieren Sie die erforderlichen Daten aus der Antwort

Nachdem wir die Antwort erhalten haben, müssen wir die erforderlichen Filminformationen daraus extrahieren. In den Douban-Filmrankings hat jeder Film eine eindeutige ID, und wir können anhand dieser ID detaillierte Informationen zu jedem Film erhalten.

Hier ist ein Beispiel für die Verwendung regulärer Ausdrücke zum Extrahieren von Film-IDs:

$pattern = '/

.?(.?)/s';
preg_match_all($ pattern, $response, $matches);

Im obigen Code definieren wir einen regulären Ausdruck $pattern, um die Film-ID und den Filmnamen abzugleichen. Verwenden Sie die Funktion preg_match_all(), um die Antwort abzugleichen und alle übereinstimmenden Ergebnisse im Array $matches zu speichern.

Als nächstes können wir die zuvor erhaltene Film-ID verwenden, um detaillierte Informationen zu jedem Film abzurufen. Hier verwenden wir die SimpleXMLElement-Klasse, um das XML-Dokument zu analysieren und Filminformationen zu extrahieren. Hier ist ein Beispiel zum Extrahieren von Filminformationen:

foreach ($matches[1] as $url) {

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($response);
echo "电影名称:" . $xml->xpath('//title')[0] . "
Nach dem Login kopieren

";

echo "导演:" . $xml->xpath('//a[@rel="v:directedBy"]/text()')[0] . "
Nach dem Login kopieren

";

echo "主演:" . implode(", ", $xml->xpath('//a[@rel="v:starring"]/text()')) . "
Nach dem Login kopieren

";

echo "评分:" . $xml->xpath('//strong[@class="ll rating_num"]/text()')[0] . "
Nach dem Login kopieren

";
}

oben Im Code durchlaufen wir die ID jedes Films und rufen mithilfe der cURL-Bibliothek die Details jedes Films ab. Verwenden Sie dann die SimpleXMLElement-Klasse, um das XML-Dokument zu analysieren und Informationen wie Filmname, Regisseur, Hauptrolle und Bewertung zu extrahieren.

  1. Daten verarbeiten und speichern

Schließlich können wir die extrahierten Filminformationen verarbeiten und speichern. Hier verwenden wir die Echo-Anweisung, um die Ergebnisse im Befehlszeilenfenster auszugeben.

Wenn Sie Daten in einer Datenbank speichern möchten, können Sie PDO oder die MySQLi-Erweiterung verwenden, um eine Verbindung zur Datenbank herzustellen und die Daten in die entsprechende Tabelle einzufügen.

3. Zusammenfassung

Webcrawler ist ein häufig verwendetes automatisiertes Programm, das uns helfen kann, schnell Informationen aus dem Internet zu erhalten und weiterzuverarbeiten. In PHP können wir die cURL-Bibliothek zum Senden von HTTP-Anfragen verwenden, die DOMDocument-Klasse oder die SimpleXMLElement-Klasse verwenden, um XML-Dokumente oder reguläre Ausdrücke zu analysieren, um sie mit HTML-Dokumenten abzugleichen, und so die Entwicklung von Webcrawlern realisieren. Ich hoffe, dass dieser Artikel Ihnen hilft, die Grundkenntnisse von Webcrawlern zu verstehen und Webcrawler mit PHP zu erstellen.

Das obige ist der detaillierte Inhalt vonErstellen Sie einen PHP-basierten Webcrawler. 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