Mit dem Aufkommen des Internetzeitalters ist die Erfassung von Daten im Internet zu einer immer wichtigeren Aufgabe geworden. Im Bereich der Web-Front-End-Entwicklung müssen wir häufig Daten von der Seite abrufen, um eine Reihe interaktiver Vorgänge abzuschließen. Um die Effizienz zu verbessern, können wir diese Arbeit automatisieren.
In diesem Artikel erfahren Sie, wie Sie PHP und Selenium für die automatisierte Datenerfassung und das Crawler-Crawling verwenden.
1. Was ist Selenium? Selenium ist ein kostenloses automatisiertes Open-Source-Testtool, das hauptsächlich zum automatisierten Testen von Webanwendungen verwendet wird. Es kann echtes Benutzerverhalten simulieren und eine automatische Interaktion erreichen. Verwenden Sie Selenium, um Browservorgänge wie Klicken, Tippen usw. zu automatisieren.
2. Selenium installieren
Selenium ist eine Bibliothek in der Python-Umgebung. Der Befehl lautet wie folgt:
pip install selenium
Als nächstes müssen Sie den Browsertreiber herunterladen Die Download-Adresse des Treibers lautet: http://chromedriver.chromium.org/downloads. Laden Sie ihn herunter, extrahieren Sie ihn in ein Verzeichnis und fügen Sie das Verzeichnis zu den Systemumgebungsvariablen hinzu.
3. Verwenden Sie Selenium, um Seitendaten abzurufen
Nach Abschluss der Installation von Selenium können Sie mit PHP ein Programm schreiben, um Seitendaten automatisch abzurufen.
Das Folgende ist ein einfacher Beispielcode, der automatisch den Chrome-Browser öffnet, auf die Ziel-URL zugreift, auf das Laden der Seite wartet, die Zieldaten abruft und sie an die Konsole ausgibt:
<?php require_once('vendor/autoload.php'); // 引入Selenium的PHP库 use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverRemoteRemoteWebDriver; $host = 'http://localhost:9515'; // Chrome浏览器驱动程序地址 $capabilities = DesiredCapabilities::chrome(); $options = new FacebookWebDriverChromeChromeOptions(); $options->addArguments(['--headless']); // 启动无界面模式 $capabilities->setCapability(FacebookWebDriverChromeChromeOptions::CAPABILITY, $options); $driver = RemoteWebDriver::create($host, $capabilities); $driver->get('http://www.example.com'); // 要爬的页面地址 $driver->wait(5)->until( FacebookWebDriverWebDriverExpectedCondition::visibilityOfElementLocated( FacebookWebDriverWebDriverBy::tagName('h1') ) ); // 等待页面加载完成 $title = $driver->findElement(FacebookWebDriverWebDriverBy::tagName('h1'))->getText(); // 获取页面上的标题 echo $title; // 输出页面标题 $driver->quit(); // 退出浏览器驱动程序
Im obigen Beispielcode Chrome wird verwendet. Der Browser fungiert als Crawler-Tool und aktiviert den Headless-Modus über den Parameter „--headless“. Nach dem Zugriff auf die Seite wartet das Programm explizit auf das Laden der Seite und ruft die Titeldaten auf der Seite ab.
4. Wie gehe ich mit dem Anti-Crawling-Mechanismus um?
Wenn wir die Daten einer Website durch einen Crawler crawlen möchten, stoßen wir häufig auf Anti-Crawling-Mechanismen wie Bestätigungscodes, User-Agent-Erkennung usw. Zu diesem Zeitpunkt können wir wie folgt damit umgehen:
User-Agent verschleiernMozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
5. Zusammenfassung
Selenium ist ein leistungsstarkes automatisiertes Testtool, das auch als effektives Tool im Crawler-Bereich eingesetzt werden kann. Mit PHP und Selenium können Sie schnell ein effizientes automatisiertes Erfassungs- und Crawler-Tool schreiben, um eine automatisierte Erfassung von Webseitendaten zu erreichen.
Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP und Selenium, um automatisch Daten zu sammeln und Crawler-Crawling zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!