Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie schnell automatisierte Crawler mit PHP und Selenium

So implementieren Sie schnell automatisierte Crawler mit PHP und Selenium

王林
王林Original
2023-06-16 09:15:521747Durchsuche

Mit der Entwicklung des Internets wird die Crawler-Technologie in allen Lebensbereichen weit verbreitet eingesetzt. Automatisierte Crawler werden häufig bei der Datenerfassung und beim Testen von Websites eingesetzt. In diesem Artikel erfahren Sie, wie Sie mithilfe von PHP und Selenium schnell automatisierte Crawler implementieren.

1. Einführung in Selenium

Selenium ist ein automatisiertes Testtool, das häufig zum Testen von Webanwendungen verwendet wird. Selenium IDE ist ein Tool zum Testen von Webanwendungen, und Selenium WebDriver ist ein browsergesteuertes automatisiertes Testtool, das Schnittstellen für viele Programmiersprachen bereitstellt, darunter Java, C#, Python und PHP.

Selenium WebDriver wird basierend auf dem Browser getestet. Es kann das Verhalten des Browsers steuern und das Betriebsverhalten der Webanwendung durch den Benutzer simulieren. Mit Selenium WebDriver können wir ganz einfach Web-Automatisierungstests und Web-Datenerfassung durchführen.

2. PHP verwendet Selenium WebDriver

Installieren Sie Selenium WebDriver für PHP

Zuerst müssen wir Selenium WebDriver für PHP installieren. Selenium WebDriver für PHP kann einfach mit Composer installiert werden. Sie können eine Composer.json-Datei im Stammverzeichnis Ihres Projekts erstellen und den folgenden Inhalt hinzufügen:

{

"name": "myproject",
"description": "Using Selenium WebDriver for PHP",
"require": {
    "php-webdriver/webdriver": "~1.4.0"
}

}

Nach dem Speichern der Datei können Sie die Datei eingeben Folgender Befehl in der Befehlszeile Installation:

composer install

Dadurch werden automatisch die erforderlichen Komponenten installiert.

Verwendung von Selenium WebDriver für PHP

Nachdem die Installation abgeschlossen ist, können wir mit der Verwendung von Selenium WebDriver für PHP für automatisierte Tests und Webdatenerfassung beginnen. Zuerst müssen wir die Implementierungsklasse von WebDriver einführen:

require_once 'vendor/autoload.php';

use FacebookWebDriverRemoteCapabilities;
use FacebookWebDriverRemoteWebDriverBrowserType;
use FacebookWebDriverRemoteRemoteWebDriver;

Hier verwenden wir die von Facebook entwickelte WebDriver für PHP-Bibliothek, durch Einführung der obigen Code-Implementierung.

Jetzt können wir die RemoteWebDriver-Schnittstelle verwenden, um eine Verbindung zum Browser für automatisierte Vorgänge herzustellen.

$host = 'http://localhost:4444/wd/hub';
$capabilities = array(WebDriverBrowserType::CHROME);
$driver = RemoteWebDriver::create($host, new Capabilities($capabilities)) ;

Hier wählen wir den Chrome-Browser aus, stellen über die Erstellungsmethode eine Verbindung zum Browser her und rufen dann über die WebDriver-Schnittstelle die Browsermethode auf, um automatisierte Tests und Webdatenerfassung zu implementieren.

3. Automatisierte Crawler implementieren

Als nächstes verwenden wir Selenium WebDriver für PHP, um automatisierte Crawler zu implementieren.

  1. Bestimmen Sie die Zielwebsite

Zuerst müssen wir die Zielwebsite bestimmen, die gecrawlt werden muss. Hier nehmen wir „Cheese Network“ als Beispiel. Diese Website bietet kostenlose Online-Ansicht der gesamten Sammlung von Filmen aus Hongkong und Taiwan. Wir benötigen die Film- und Fernsehressourceninformationen auf dieser Website.

  1. Crawling-Ziel bestätigen

Bevor wir Daten crawlen, müssen wir bestätigen, welche Daten gecrawlt werden müssen. In diesem Beispiel benötigen wir den Film- und Fernsehtitel, den Regisseur, die Schauspieler, das Jahr, die Zusammenfassung der Handlung und andere Informationen.

  1. Code schreiben

Nachdem wir das Ziel bestätigt haben, können wir den entsprechenden Code schreiben. Mit dem folgenden Code werden die detaillierten Informationen zum angegebenen Filmnamen abgerufen:

$movieName = 'YourMovieName'; ($capabilities) );

$browser->manage()->timeouts()->implicitlyWait(10);


// Öffnen Sie die Zielwebsite
$browser->get('http:// www.zhishi8. com/film/')

// Suchen Sie das Suchfeld und senden Sie die Abfrage
$searchBox = $browser->findElement(WebDriverBy::id('wd'));

$searchBox-> sendKeys($movieName );

$searchBox->submit();

// Warten, bis die Ergebnisseite geladen wird
$browser->wait()->until(

WebDriverExpectedCondition::titleContains($movieName)

);

// Klicken Sie auf den Link zum gefundenen Film und warten Sie, bis die Detailseite geladen ist

$movieLink = $browser->findElement(WebDriverBy::xpath("//a[contains(@href, '/film/{$name}.html' )]") );

$movieLink->click();

$browser->wait()->until(

WebDriverExpectedCondition::titleContains($movieName)

);

// Holen Sie sich die Filmdetailinformationen

$movieDirector = $browser ->findElement (WebDriverBy::xpath("//p[contains(@class, 'lh30') and contains(text(), 'director')]"))->getText();

$movieActor = $browser-> ;findElement(WebDriverBy::xpath("//p[contains(@class, 'lh30') and contains(text(), 'starring')]"))->getText();

$ movieYear = $browser ->findElement(WebDriverBy::xpath("//p[contains(@class, 'lh30') and contains(text(), 'Year')]"))->getText();
$movieDetail = $browser->findElement(WebDriverBy::xpath("//p[contains(@class, 'txt lh25')]))->getText();

// Das Ergebnis ausgeben
echo „Filmname: {$movieName}

“;

echo „Regisseur: {$movieDirector}
“;
echo „Schauspieler: {$movieActor}
“;
echo „Jahr: {$movieYear}
“;
echo „ Detail: {$ movieDetail}
";

Mit PHP und Selenium können wir problemlos automatisierte Crawler implementieren, um die Daten zu erhalten, die wir benötigen.

4. Zusammenfassung

In diesem Artikel erfahren Sie, wie Sie mithilfe von PHP und Selenium schnell automatisierte Crawler implementieren. Zunächst stellten wir die Grundkenntnisse und Installationsmethoden von Selenium WebDriver vor. Anschließend erklärten wir anhand von Beispielen, wie man PHP und Selenium WebDriver verwendet, um automatisierte Crawler zu implementieren. Abschließend fassen wir den Inhalt dieses Artikels zusammen und hoffen, dass er für Sie hilfreich ist.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie schnell automatisierte Crawler mit 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