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.
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.
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.
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->submit();
// Warten, bis die Ergebnisseite geladen wird
$browser->wait()->until(
WebDriverExpectedCondition::titleContains($movieName)
);
$movieLink = $browser->findElement(WebDriverBy::xpath("//a[contains(@href, '/film/{$name}.html' )]") );
$movieLink->click();$browser->wait()->until(
WebDriverExpectedCondition::titleContains($movieName)
$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.
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!