Heim  >  Artikel  >  Backend-Entwicklung  >  Erstellen Sie einen schnellen, effizienten Webcrawler: Beispiel für PHP und Selenium

Erstellen Sie einen schnellen, effizienten Webcrawler: Beispiel für PHP und Selenium

WBOY
WBOYOriginal
2023-06-15 16:10:521520Durchsuche

Mit der kontinuierlichen Entwicklung des Internets ist das Crawlen von Daten für viele Menschen zu einer wesentlichen Fähigkeit geworden. Webcrawler sind eines der wichtigen Tools für das Datencrawlen.

Webcrawler können automatisch auf Websites zugreifen, Inhalte abrufen, Seiten analysieren und erforderliche Daten extrahieren. Unter anderem ist Selenium ein hervorragendes Tool zum Testen der Netzwerkautomatisierung, das reale Benutzervorgänge simulieren kann und beim Erstellen von Webcrawlern sehr hilfreich ist.

In diesem Artikel erfahren Sie, wie Sie mit PHP und Selenium einen schnellen und effizienten Webcrawler erstellen. Dazu müssen wir uns einige Grundkenntnisse aneignen.

1. Installationsumgebung

Bevor Sie beginnen, müssen Sie PHP und Selenium installieren.

1. PHP installieren

In einer Windows-Umgebung können Sie das XAMPP- oder WAMP-Softwarepaket herunterladen und installieren, und Mac-Benutzer können das MAMP-Softwarepaket installieren.

In einer Linux-Umgebung kann PHP über die Befehlszeile installiert werden. Auf einem Ubuntu-System kann es beispielsweise über den folgenden Befehl installiert werden:

sudo apt-get install php7.0

Bei der Installation ist Folgendes zu beachten PHP, Sie müssen bestätigen, dass es einige notwendige Erweiterungen installiert hat, zum Beispiel: php-curl. Sie können überprüfen, ob die Erweiterung installiert wurde, indem Sie den folgenden Befehl ausführen:

php -m |. Wenn keine Curl-Erweiterung vorhanden ist, müssen Sie sie manuell installieren.

2. Installieren Sie Selenium

Bevor Sie Selenium installieren, müssen Sie die Java Runtime Environment (JRE) installieren.

Sie können die Selenium Server Standalone Edition von der offiziellen Website von Selenium herunterladen (https://www.selenium.dev/downloads/).

Sie können den folgenden Befehl verwenden, um den Selenium-Server zu starten:

java -jar selenium-server-standalone-3.xx.x.jar

2. Erstellen Sie einen Webcrawler mit Selenium und PHP

Bevor Sie mit dem Erstellen beginnen Als Webcrawler müssen Sie einige grundlegende Konzepte kennen:

WebDriver
  1. WebDriver ist eine Kernkomponente in Selenium und kann zur Steuerung des Verhaltens des Browsers verwendet werden. Mit WebDriver können wir den Browser automatisch öffnen und schließen und das Bedienverhalten des Benutzers simulieren.

Locator
  1. Locator wird zum Auffinden von Elementen auf HTML-Seiten verwendet. Zu den häufig verwendeten Positionierungsmethoden in Selenium gehören ID, Name, Klasse, Tagname, CSS, XPath usw.

Action
  1. Action bezieht sich auf bestimmte Benutzeraktionen im Browser, wie z. B. Klicken, Texteingabe, Bewegen der Maus usw.

In diesem Beispiel erstellen wir einen Webcrawler mit dem automatisierten Testtool Selenium WebDriver und der Programmiersprache PHP. Am Beispiel von Baidu (https://www.baidu.com) suchen wir nach Schlüsselwörtern und crawlen die Links der Suchergebnisse.

Zuerst müssen Sie Selenium WebDriver und PHP WebDriver mit Composer in Ihrem PHP-Projekt installieren.

Composer konfigurieren
  1. Bevor Sie ein PHP-Projekt erstellen, müssen Sie Composer (https://getcomposer.org/) installieren und über die Befehlszeile ein neues PHP-Projekt erstellen.

Im Projektordner können Sie den folgenden Befehl verwenden, um Selenium WebDriver und PHP WebDriver zu installieren:

composer require facebook/webdriver

Schreiben Sie den Code
  1. Erstellen Sie eine neue Datei crawl.php im Projektordner und bearbeiten Sie sie Der Code lautet wie folgt:
<?php
require_once('vendor/autoload.php');

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;
use FacebookWebDriverWebDriverKeys;

// 设置WebDriver
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);

// 打开百度
$driver->get('https://www.baidu.com');

// 搜索关键字
$search_box = $driver->findElement(WebDriverBy::id('kw'));
$search_box->sendKeys('Selenium');
$search_box->sendKeys(WebDriverKeys::ENTER);

// 等待页面加载完成
sleep(5);

// 抓取搜索结果链接
$elements = $driver->findElements(WebDriverBy::xpath('//div/h3/a'));
foreach ($elements as $element) {
    echo $element->getAttribute('href')."
";
}

// 关闭浏览器
$driver->quit();
?>

Zunächst müssen wir den Webdriver einrichten, einschließlich des verwendeten Browsers (hier wird der Chrome-Browser verwendet) und der Adresse des WebDriver-Dienstes.

Als nächstes verwenden Sie WebDriver, um die Baidu-Homepage zu öffnen. Wir finden das Baidu-Suchfeld anhand der ID, geben das Schlüsselwort Selenium ein und drücken die Eingabetaste, um die Suche abzusenden. Warten Sie anschließend, bis die Seite geladen ist und Links zu allen Suchergebnissen angezeigt werden.

Schließen Sie abschließend den Browser.

Führen Sie den Code aus
  1. Führen Sie den folgenden Befehl in der Befehlszeile aus, um crawl.php auszuführen und den Suchergebnislink abzurufen:

php crawl.php

3. Zusammenfassung

Durch die Einleitung dieses Artikels, Sie kann lernen, wie man mit PHP und Selenium einen einfachen Webcrawler erstellt. Mit Selenium WebDriver lassen sich Benutzervorgänge simulieren und so bessere Ergebnisse beim Webcrawlen erzielen. In praktischen Anwendungen können wir verschiedene Positionierungsmethoden anwenden und das Betriebsverhalten nach Bedarf anpassen, um eine genauere und effizientere Datendurchforstung zu erreichen.

Hinweis: Dieses Beispiel dient nur als Lernreferenz und ist für illegale Zwecke verboten.

Das obige ist der detaillierte Inhalt vonErstellen Sie einen schnellen, effizienten Webcrawler: Beispiel für PHP und Selenium. 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