Heim  >  Artikel  >  Backend-Entwicklung  >  Grundlegende Fähigkeiten für automatisierte Crawler: Einführung in die Verwendung von PHP und Selenium

Grundlegende Fähigkeiten für automatisierte Crawler: Einführung in die Verwendung von PHP und Selenium

王林
王林Original
2023-06-15 22:52:432003Durchsuche

Im heutigen digitalen Zeitalter ist das Crawlen von Daten aus dem Internet zu einem alltäglichen Bedürfnis geworden. Für die Datenerfassung und -analyse in großem Maßstab ist der Einsatz automatisierter Crawler unbedingt erforderlich. Selenium ist ein weit verbreitetes Tool für Webtests und -automatisierung, während PHP eine beliebte Webprogrammiersprache ist. In diesem Artikel stellen wir vor, wie Sie mit PHP und Selenium automatisierte Crawler implementieren und die erforderlichen Daten crawlen.

1. Installieren Sie Selenium und WebDriver

Bevor Sie Selenium verwenden, müssen Sie Selenium herunterladen. Es kann installiert werden über:

composer require php-webdriver/webdriver

Auf diese Weise können Sie den Webdriver erfolgreich herunterladen und in Ihrem Code verwenden. Als nächstes müssen wir den Webtreiber des Browsers installieren, z. B. den Chrome-Webtreiber, damit das Programm ihn aufrufen kann. Sie können die entsprechende Version des Webdrivers von der offiziellen Chrome-Website herunterladen.

2. Grundlegende Verwendung von Selenium

Nach der Installation von Selenium und Webdriver können wir damit den Browser automatisch bedienen. Hier ist ein einfaches Codebeispiel:

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get('http://www.google.com');
$element = $driver->findElement(WebDriverBy::name('q'));
$element->sendKeys('Selenium');
$element->submit();
echo $driver->getTitle();

Dieses Code-Snippet erstellt zunächst ein Remote-Webdriver-Objekt, um eine Verbindung zum lokalen Chrome-Browser herzustellen. Anschließend öffnet es Google, gibt „Selenium“ ein und führt eine Suche durch. Abschließend wird der Seitentitel des Browsers ausgegeben.

3. Verwenden Sie Selenium zum Crawlen

Mit Grundkenntnissen von Selenium können wir damit beginnen, einen automatisierten Crawler zu erstellen. Das Folgende ist ein einfaches Codebeispiel, mit dem alle Links auf einer bestimmten Webseite gecrawlt werden können:

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get('https://www.example.com');

$links = $driver->findElements(WebDriverBy::tagName('a'));

foreach ($links as $link) {
    $url = $link->getAttribute('href');
    echo $url . "

";

}

Dieses Codefragment verwendet Selenium, um eine Website zu besuchen und alle Links auf dieser Website abzurufen. Durch Durchlaufen jedes Links und Rufen Sie die Funktion getAttribute('href') auf, um den Wert des href-Attributs abzurufen, und geben Sie schließlich alle gefundenen Links aus

4. Implementieren Sie den automatisierten Crawler mit PHP

Das obige Codebeispiel verwendet in PHP implementierten Selenium-Code und PHP können wir einen vollständigen automatisierten Crawler implementieren. Hier ist ein Beispielcode, der die Paging-Technologie verwendet, um die ersten 10 Seiten der Baidu-Suchergebnisse zu crawlen:

use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;

$driver = RemoteWebDriver::create('http://localhost:9515', DesiredCapabilities::chrome());
$driver->get('https://www.baidu.com/s?wd=php');

$pageNumber = 10;

for ($i = 1; $i <= $pageNumber; $i++) {
     echo "page {$i}

";

     $links = $driver->findElements(WebDriverBy::xpath('//div[@class="result c-container "]//h3[@class="t"]/a'));

     foreach ($links as $link) {
         $url = $link->getAttribute('href');
         echo $url . "

";

     }

     $nextPageElement = $driver->findElement(WebDriverBy::xpath('//a[@class="n" and contains(text(),"下一页>")]'));

     $driver->executeScript("arguments[0].scrollIntoView();", [$nextPageElement]);

     $nextPageElement->click();
 }

Das obige Code-Snippet wird zuerst geöffnet Die Baidu-Suchergebnisseite durchläuft dann alle Suchergebnisse auf jeder Seite und gibt die Linkadresse jedes Suchergebnisses aus. Nach dem Durchlaufen einer Seite scrollt es zum Ende der Seite und klickt auf die Schaltfläche „Weiter“, um fortzufahren Mehr Links crawlen.

Zusammenfassung

Das Erstellen automatisierter Crawler mit Selenium und PHP ist eine sehr effiziente Möglichkeit, viele der Kernfunktionen bereitzustellen, die zum Erstellen automatisierter Crawler erforderlich sind, während PHP eine schnelle, einfache und bequeme Möglichkeit zur automatisierten Implementierung bietet Durch die Beherrschung dieser Techniken können wir automatisierte Crawler besser nutzen, um die benötigten Daten schnell und effizient zu sammeln.

Das obige ist der detaillierte Inhalt vonGrundlegende Fähigkeiten für automatisierte Crawler: Einführung in die Verwendung von 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