Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Web-Crawling-Grundlagen-Tutorial: Verwendung der cURL-Bibliothek für den Zugriff auf Websites

PHP-Web-Crawling-Grundlagen-Tutorial: Verwendung der cURL-Bibliothek für den Zugriff auf Websites

WBOY
WBOYOriginal
2023-06-13 15:38:051772Durchsuche

Mit der Entwicklung des Internets und dem zunehmenden Datenwachstum sind Webcrawler zu einer wichtigen Möglichkeit geworden, an Internetinformationen zu gelangen. Ein Webcrawler ist ein automatisiertes Programm, das über Netzwerkanfragen auf eine Website zugreift, Informationen auf der Website crawlt, verarbeitet und analysiert. In diesem Fall stellen wir vor, wie man einen einfachen Webcrawler in PHP schreibt, die cURL-Bibliothek verwendet, um auf die Website zuzugreifen, die gecrawlt werden muss, und wie man die erhaltenen Informationen verarbeitet.

  1. Installation der cURL-Bibliothek

cURL-Bibliothek ist ein sehr leistungsfähiges Tool zur URL-Konvertierung, das über die Befehlszeile funktioniert. Es unterstützt auch Netzwerkprotokolle wie HTTP/HTTPS/FTP/TELNET. Mit der cURL-Bibliothek können Sie ganz einfach Webdaten crawlen, Dateien über FTP, HTTP POST und PUT-Daten hochladen und mithilfe der Authentifizierungsmethoden Basic, Digest oder GSS-Negotiate auf Remote-Site-Ressourcen zugreifen. Da die cURL-Bibliothek sehr praktisch und einfach zu verwenden ist, wird sie häufig beim Schreiben von Webcrawlern verwendet.

In diesem Tutorial zeigen wir, wie man cURL mithilfe der CURL-Erweiterung verwendet. Sie müssen also zuerst die cURL-Erweiterungsbibliothek in PHP installieren. Sie können die folgende Befehlszeile verwenden, um die cURL-Erweiterung zu installieren:

sudo apt-get install php-curl

Nach der Installation müssen wir den PHP-FPM-Dienst neu starten, um sicherzustellen, dass die Erweiterungsbibliothek normal ausgeführt werden kann.

  1. Grundlegendes Crawler-Skript-Skelett

Als nächstes schreiben wir einen einfachen Webcrawler, um auf eine bestimmte URL zuzugreifen und einige grundlegende Informationen über die URL-Webseite zu erhalten. Das Folgende ist ein grundlegendes Crawler-Skript-Skelett:

<?php
$curl = curl_init();           
$url = "https://www.example.com/";
curl_setopt($curl, CURLOPT_URL, $url);     
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);  
curl_close($curl);       
echo $result;
?>

Der obige Code führt Folgendes aus:

  • Eine cURL-Sitzung initialisieren.
  • Legen Sie die URL fest, von der wir Informationen extrahieren möchten.
  • Legen Sie Optionen fest, damit cURL Daten zurückgibt, anstatt sie direkt auf dem Bildschirm auszugeben.
  • Führen Sie die Anfrage aus und erhalten Sie die Daten.
  • CURL-Sitzung freigeben.

Sie können die Optionen von curl_setopt auch nach Bedarf an Ihre Bedürfnisse anpassen. Sie können beispielsweise mit der folgenden Codezeile eine Option zum Festlegen eines Timeouts hinzufügen:

curl_setopt($curl, CURLOPT_TIMEOUT, 5); // 5秒超时

Darüber hinaus können Sie mit der Option „curl_setopt“ einen HTTP-Header festlegen, um zu simulieren, dass ein Browser eine Anfrage sendet, wenn eine Website angefordert wird. Wenn Sie ein Cookie setzen müssen, können Sie die Option „curl_setopt“ verwenden, um den Cookie-Platzhalter festzulegen, oder die entsprechenden Funktionen in cURL Cookie verwenden.

Nachdem Sie die Daten erhalten haben, müssen Sie sie möglicherweise extrahieren, analysieren und filtern. In diesem Prozess müssen Sie möglicherweise die String-Verarbeitungsfunktionen, reguläre Ausdrücke oder andere Parsing-Bibliotheken von PHP verwenden.

  1. Beispiel: Extrahieren von Informationen aus einer Zielwebsite

Um den Prozess des Schreibens eines Webcrawlers besser zu verstehen, finden Sie hier ein Beispiel, das zeigt, wie Informationen aus einer Website extrahiert werden. Bei dieser Website (www.example.com) handelt es sich um eine Testwebsite, von der wir aussagekräftige Daten erhalten können.

Zuerst müssen wir die cURL-Bibliothek verwenden, um Daten von der angegebenen Website abzurufen. Hier ist der Codeausschnitt, der zum Abrufen der Daten verwendet wird:

<?php
$curl = curl_init();
$url = "https://www.example.com/";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>

Durch Ausführen des obigen Codes wird der vollständige HTML-Inhalt von www.example.com ausgegeben Webseite. Da wir bestimmte Informationen aus der erhaltenen Website extrahieren müssen, müssen wir den HTML-Code analysieren. Wir werden die DOMDocument-Klasse verwenden, um HTML zu analysieren, wie zum Beispiel den folgenden Code:

<?php
$curl = curl_init();
$url = "https://www.example.com/";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
$dom = new DOMDocument;
$dom->loadHTML($result);
foreach ($dom->getElementsByTagName('a') as $link) {
    echo $link->getAttribute('href'), PHP_EOL;
}
?>

Der obige Code verwendet die DOMDocument-Klasse, um HTML zu laden und die Methode getElementsByTagName() zu verwenden, um alle Elemente abzurufen. Danach können wir die Methode getAttribute() verwenden, um das href-Attribut des entsprechenden Elements abzurufen. Wenn wir den Code ausführen, können wir sehen, dass die Ausgabe die im HTML-Tag enthaltene URL analysiert und ausgibt.

  1. Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man mit der cURL-Bibliothek einen einfachen Webcrawler schreibt. Wir haben auch behandelt, wie man Daten aus Websites extrahiert und HTML-Dokumente analysiert. Wenn Sie diese Grundkonzepte verstehen, können Sie besser verstehen, wie Webcrawler funktionieren, und mit dem Schreiben Ihrer eigenen beginnen. Natürlich gibt es beim Schreiben von Webcrawlern viele komplexe Techniken und Probleme, aber wir hoffen, dass dieser Artikel Ihnen dabei hilft, einen guten Start in Ihre Reise zum Schreiben von Webcrawlern zu haben.

Das obige ist der detaillierte Inhalt vonPHP-Web-Crawling-Grundlagen-Tutorial: Verwendung der cURL-Bibliothek für den Zugriff auf Websites. 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