Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich die PHP-Goutte-Klassenbibliothek für Web-Crawling und Datenextraktion?
Wie verwende ich die PHP-Goutte-Klassenbibliothek für Web-Crawling und Datenextraktion?
Überblick:
Im täglichen Entwicklungsprozess müssen wir häufig verschiedene Daten aus dem Internet abrufen, z. B. Filmrankings, Wettervorhersagen usw. Web-Crawling ist eine der gebräuchlichsten Methoden, um diese Daten zu erhalten. In der PHP-Entwicklung können wir die Goutte-Klassenbibliothek verwenden, um Web-Crawling- und Datenextraktionsfunktionen zu implementieren. In diesem Artikel wird die Verwendung der PHP-Goutte-Klassenbibliothek für Web-Crawling und Datenextraktion vorgestellt und Codebeispiele angehängt.
Was ist Goutte?
Goutte ist eine auf Symfony basierende PHP-Klassenbibliothek, die speziell für das Web-Crawling und die Datenextraktion verwendet wird. Es basiert auf der CSS-Auswahlkomponente von Symfony und bietet eine einfache, aber leistungsstarke Möglichkeit, Webseiten zu bearbeiten. Mit Goutte können wir ganz einfach Web-Crawling, Formularübermittlung, Datenextraktion und andere Vorgänge durchführen.
Installieren Sie die Goutte-Klassenbibliothek:
Zuerst müssen wir die Goutte-Klassenbibliothek über Composer installieren. Öffnen Sie das Terminal, geben Sie Ihr Projektverzeichnis ein und führen Sie den folgenden Befehl aus:
composer require fabpot/goutte
Nachdem die Installation abgeschlossen ist, können wir die Goutte-Klassenbibliothek in den Code einführen und mit der Verwendung beginnen.
Beispiel für Web-Crawling und Datenextraktion:
Angenommen, wir möchten Informationen über aktuell beliebte Filme von einer Filmranking-Website erhalten, z. B. Filmnamen, Bewertungen usw. Finden Sie zunächst die URL Ihrer Zielseite. Nehmen Sie als Beispiel die Rangliste der Douban-Filme. Die URL lautet: https://movie.douban.com/chart.
Als nächstes verwenden wir Goutte, um Webseiten zu crawlen und Daten zu extrahieren. Das Folgende ist ein Beispielcode:
// 引入Goutte类库 require 'vendor/autoload.php'; use GoutteClient; // 创建一个Goutte客户端实例 $client = new Client(); // 发送GET请求,获取目标网页内容 $crawler = $client->request('GET', 'https://movie.douban.com/chart'); // 使用CSS选择器获取电影列表 $movies = $crawler->filter('.indent table tr')->each(function ($node) { // 提取电影名称 $title = $node->filter('.pl2 a')->text(); // 提取电影评分 $rating = $node->filter('.star .rating_nums')->text(); // 返回电影信息 return [ 'title' => $title, 'rating' => $rating, ]; }); // 输出结果 foreach ($movies as $movie) { echo $movie['title'] . ' - ' . $movie['rating'] . " "; }
Im obigen Code erstellen wir zunächst eine Client-Instanz von Goutte und verwenden dann die Anforderungsmethode, um eine GET-Anfrage an die Zielwebseite zu senden, um den Webseiteninhalt abzurufen. Als nächstes verwenden Sie einen CSS-Selektor, um die Filmliste zu extrahieren, wobei Sie den CSS-Selektor „.indent table tr“ verwenden, um alle geeigneten Elemente auf der Zielwebseite darzustellen. Schließlich führen wir einige Datenextraktionsvorgänge für jeden Filmknoten durch, extrahieren den Filmnamen und die Bewertung, speichern sie im Ergebnisarray und drucken schließlich die Ergebnisse aus.
Mit dem obigen Code können wir Web-Crawling- und Datenextraktionsfunktionen schnell implementieren. Natürlich verfügt Goutte über leistungsfähigere Funktionen, wie z. B. Formularübermittlung, simulierte Benutzervorgänge usw. Leser können diese bei Bedarf weiter erkunden.
Zusammenfassung:
Dieser Artikel stellt die Verwendung der PHP-Goutte-Klassenbibliothek für Web-Crawling und Datenextraktion vor und demonstriert die grundlegende Verwendung anhand von Codebeispielen. Web-Crawling und Datenextraktion sind in vielen Szenarien sehr nützlich, z. B. bei der Datenanalyse, Informationssammlung usw. Durch die Goutte-Klassenbibliothek können wir diese Funktionen einfach implementieren und die Entwicklungseffizienz erheblich verbessern. Ich hoffe, dass dieser Artikel den Lesern hilfreich sein wird und freue mich über Austausch und Diskussionen.
Das obige ist der detaillierte Inhalt vonWie verwende ich die PHP-Goutte-Klassenbibliothek für Web-Crawling und Datenextraktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!