Heim  >  Artikel  >  Backend-Entwicklung  >  Crawlen einfacher machen: Webcrawler mit PHP und Selenium entwickeln

Crawlen einfacher machen: Webcrawler mit PHP und Selenium entwickeln

WBOY
WBOYOriginal
2023-06-16 10:09:13769Durchsuche

Lassen Sie uns zunächst kurz vorstellen, was ein Webcrawler ist. Ein Webcrawler ist ein Programm, das nach bestimmten Regeln automatisch Webseiteninformationen abruft und zum Sammeln von Daten im Internet dient. Im Internetzeitalter wird die Datenerfassung immer wichtiger, ebenso wie Webcrawler. Dieser Artikel verwendet PHP und Selenium, um einen einfachen Webcrawler zu implementieren.

1. Grundprinzipien von Crawlern

Das Grundprinzip von Crawlern besteht darin, Programme zu schreiben, um das Browserverhalten zu simulieren, Anfragen an den Server zu senden, den zurückgegebenen Inhalt zu analysieren und nützliche Daten zu extrahieren. Wir können den HTML-Quellcode der Webseite analysieren, um die Tags oder Elemente zu ermitteln, in denen sich der Inhalt befindet, den wir erhalten möchten, und dann ein Programm schreiben, um den Inhalt dieser Tags und Elemente zu erfassen.

2. Gründe für die Wahl von PHP als Entwicklungssprache

PHP ist eine beliebte Open-Source-Server-Skriptsprache, da ihr Code einfach, leicht zu erlernen und zu verwenden ist und daher von vielen Websites verwendet wird. Ein wichtiges Merkmal von PHP ist seine Fähigkeit, auf vielen verschiedenen Systemplattformen zu laufen. Darüber hinaus ist PHP eine objektorientierte Sprache, was die Wartung erleichtert und die Interaktion mit vielen anderen Sprachen erleichtert.

3. Wählen Sie Selenium als automatisiertes Testtool

Selenium ist ein beliebtes Tool zum Testen von Webanwendungen. Es kann menschliches Verhalten im Browser simulieren und verschiedene Testaufgaben durchführen, einschließlich automatisierter Tests von Websites und Anwendungen. Darüber hinaus unterstützt Selenium mehrere Programmiersprachen, einschließlich PHP.

4. Installations- und Konfigurationsumgebung

Um Selenium zu verwenden, müssen Sie den Browsertreiber installieren.

1. Installieren Sie den Chrome-Browser

Bei der Installation des Chrome-Browsers müssen Sie sicherstellen, dass der Chrome-Treiber der Browserversion entspricht.

2. Laden Sie den Chrome-Treiber herunter

Sie müssen den Chrome-Treiber im Programm verwenden, um das Verhalten des Browsers zu steuern. Um den Treiber herunterzuladen, können Sie die entsprechende Version direkt von der offiziellen Website herunterladen und anschließend entpacken.

3. Umgebungsvariablen konfigurieren

Fügen Sie den Chrome-Treiber in die Umgebungsvariable ein, damit das Programm die Treiberdatei finden kann.

4. Installieren Sie Selenium

Verwenden Sie Composer, um

composer require facebook/webdriver

zu installieren. 5. Schreiben Sie Code.

Das Folgende ist ein einfacher Beispielcode zum Abrufen des Suchfeldtexts auf der Baidu-Homepage:

<?php
require_once __DIR__ . '/vendor/autoload.php';
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

//指定驱动路径
$chromeOptions = new FacebookWebDriverChromeChromeOptions();
$chromeOptions->addArguments(['--headless']);
$chromeOptions->setBinary('/Applications/Google Chrome.app/Contents/MacOS/Google Chrome');
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(FacebookWebDriverChromeChromeOptions::CAPABILITY, $chromeOptions);

//连接Chrome并打开百度首页
$driver = RemoteWebDriver::create('http://localhost:9515', $capabilities);
$driver->get('http://www.baidu.com/');

//模拟搜索
$element = $driver->findElement(FacebookWebDriverWebDriverBy::id('kw'));
$element->sendKeys('hello world');
$element->submit();

//获取搜索结果中的相关内容
$results = $driver->findElements(FacebookWebDriverWebDriverBy::className('result-title'));
foreach ($results as $result) {
    echo $result->getText() . "
";
}

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

Der obige Code verwendet Selenium, um eine Verbindung zu Chrome herzustellen und Öffnen Sie die Baidu-Homepage, geben Sie „Hello World“ in das Suchfeld ein und simulieren Sie dann das Absenden einer Suche. Erfassen Sie abschließend den Inhalt in den Suchergebnissen und geben Sie ihn aus.

6. Realisierungsergebnisse

Mit dem obigen Code können Sie die Schlüsselwörter im Suchfeld auf der Baidu-Homepage erfassen. Wir können den Code ändern, um mehr Websites zu crawlen und mehr Daten zu erfassen.

Selenium bietet viele perfekte Tools zur Automatisierung von Web-Interface-Tests, kann aber auch zum Web-Crawling verwendet werden. Mithilfe von PHP zum Schreiben von Crawler-Code und Selenium zur Simulation des Browserverhaltens kann der Crawler problemlos auf große Datenmengen zugreifen und diese extrahieren.

7. Zusammenfassung

Dieser Artikel stellt die Verwendung von PHP und Selenium zur Implementierung eines einfachen Crawlers vor, einschließlich Umgebungskonfiguration und Codeimplementierung. Dies ist ein guter Ausgangspunkt, der auf größere Projekte ausgeweitet werden kann und mehr Funktionen nutzt. Wenn Sie mehr über Webcrawler erfahren möchten, können Sie Bücher zum Thema Crawler lesen und aus anderen Crawler-Codebeispielen lernen.

Das obige ist der detaillierte Inhalt vonCrawlen einfacher machen: Webcrawler mit PHP und Selenium entwickeln. 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