Heim  >  Artikel  >  Backend-Entwicklung  >  Ein praktischer Leitfaden für automatisierte Webcrawler: Webcrawler mit PHP und Selenium erstellen

Ein praktischer Leitfaden für automatisierte Webcrawler: Webcrawler mit PHP und Selenium erstellen

WBOY
WBOYOriginal
2023-06-15 16:44:571489Durchsuche

Webcrawler sind zu einem der wichtigsten Tools in der heutigen Internetwelt geworden. Sie können automatisch verschiedene Websites im Internet durchsuchen und nützliche Informationen extrahieren, die Menschen benötigen. Die Kerntechnologie automatisierter Webcrawler besteht darin, mithilfe von Programmiersprachen und verschiedenen Tools ein Programm zu erstellen, das Daten automatisch verarbeiten kann.

In den letzten Jahren hat sich Selenium zu einem der beliebtesten Tools im Bereich des automatisierten Web-Crawlings entwickelt. Es handelt sich um ein browserübergreifendes automatisiertes Testtool, das Benutzer simulieren kann, die verschiedene Vorgänge im Browser ausführen, z. B. Klicken, Scrollen, Tippen usw., und auch Daten von Webseiten abrufen kann. Dies macht Selenium ideal für die Erstellung automatisierter Webcrawler, da es Programmen ermöglicht, Daten auf die gleiche Weise wie normale Benutzer abzurufen.

In diesem Artikel erfahren Sie, wie Sie einen automatisierten Webcrawler mit PHP und Selenium erstellen. Das in diesem Artikel vorgestellte Crawler-Programm durchsucht automatisch die angegebene Website, extrahiert relevante Informationen wie Titel, Autor, Veröffentlichungsdatum und Artikellink aller Artikel und speichert sie schließlich in einer CSV-Datei.

Bevor wir beginnen, müssen wir PHP, Selenium und WebDriver (entsprechend dem Browsertreiber) installieren. Im Folgenden finden Sie die Details dieses Artikels:

  1. Umgebungseinstellungen und Grundkonfiguration

Zuerst müssen wir PHP in der lokalen Umgebung installieren. PHP 7 oder höher wird empfohlen. Als nächstes können Sie Selenium mit Composer installieren. Verwenden Sie den Composer-Befehl im Projektordner, um es zu installieren. Nach erfolgreicher Installation können wir mit dem Schreiben von PHP-Programmen beginnen.

  1. Aufrufen der WebDriver- und Selenium-API

Bevor wir Selenium zum Erstellen eines automatisierten Webcrawlers verwenden, müssen wir WebDriver aufrufen und eine WebDriver-Instanz erstellen, um mit dem angegebenen Browser zu kommunizieren. WebDriver ist eine Browser-Treiberschnittstelle, und verschiedene Browser erfordern unterschiedliche WebDriver.

In PHP können wir die PHP-Clientbibliothek von Selenium verwenden, um eine WebDriver-Instanz zu erstellen und diese an den WebDriver des angegebenen Browsers zu binden. Hier ist der Beispielcode:

require_once 'vendor/autoload.php';
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

// 配置浏览器类型、路径、驱动、和端口
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
  1. Einrichten einer Browsersitzung und Öffnen der Zielwebsite

Das Erstellen einer Browsersitzung erfordert nur eine Codezeile und wir können unseren Lieblingsbrowser (Firefox oder Chrome) auswählen.

Hier verwenden wir den Chrome-Browser. Hier ist der Beispielcode:

// 使用Chrome浏览器打开目标网站
$driver->get('https://example.com');
  1. Daten suchen und extrahieren

Nachdem wir die Zielwebsite geöffnet und die Seite geladen haben, müssen wir die Elemente der erforderlichen Daten finden und abrufen. In diesem Beispiel finden wir Titel, Autor, Veröffentlichungsdatum und Artikellink aller Artikel auf der Zielwebsite.

Hier ist der Beispielcode:

// 查找所有文章标题
$titles = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article h2 a'));

// 查找作者名字
$author_names = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article .author-name'));

// 查找发布日期
$release_dates = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article .release-date'));

// 查找文章链接
$links = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article h2 a'));

Hier ist der Beispielcode zum Suchen und Extrahieren der Daten für jeden Artikel:

$articles = array();

foreach ($titles as $key => $title) {
    // 提取标题
    $article_title = $title->getText();

    // 提取作者
    $article_author = $author_names[$key]->getText();

    // 提取发布日期
    $article_date = $release_dates[$key]->getText();

    // 提取文章链接
    $article_link = $links[$key]->getAttribute('href');

    // 添加文章到数组
    $articles[] = array(
        'title' => $article_title,
        'author' => $article_author,
        'date' => $article_date,
        'link' => $article_link
    );
}
  1. Die Ergebnisse werden in einer CSV-Datei gespeichert

Der letzte Schritt besteht darin, die extrahierten Daten zu speichern in eine CSV-Datei. Daten können mit der in PHP integrierten Funktion fputcsv() in einer CSV-Datei gespeichert werden.

Das Folgende ist der Beispielcode:

// 文件流方式打开文件
$file = fopen('articles.csv', 'w');

// 表头
$header = array('Title', 'Author', 'Date', 'Link');

// 写入标题
fputcsv($file, $header);

// 写入文章数据
foreach ($articles as $article) {
    fputcsv($file, $article);
}

// 关闭文件流
fclose($file);

Damit ist die Inhaltsextraktion und Datenverarbeitung beendet. Die Daten in der CSV-Datei können für spätere Analysen und Anwendungen genutzt werden. Darüber hinaus können die Daten zur weiteren Verarbeitung in andere Datenbanken importiert werden.

Zusammenfassend haben wir in diesem Artikel gesehen, wie man mit PHP und Selenium einen automatisierten Webcrawler erstellt und wie man die Daten der Zielwebsite erhält, verarbeitet und in einer CSV-Datei speichert. Dieses Beispiel ist nur eine einfache Demonstration, die auf verschiedene Szenarien angewendet werden kann, in denen Daten von der Website abgerufen werden müssen, z. B. SEO, Analyse von Wettbewerbsprodukten usw.

Das obige ist der detaillierte Inhalt vonEin praktischer Leitfaden für automatisierte Webcrawler: Webcrawler mit PHP und Selenium erstellen. 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