Maison  >  Article  >  développement back-end  >  Un guide pratique des robots d'exploration Web automatisés : créer des robots d'exploration Web avec PHP et Selenium

Un guide pratique des robots d'exploration Web automatisés : créer des robots d'exploration Web avec PHP et Selenium

WBOY
WBOYoriginal
2023-06-15 16:44:571488parcourir

Les robots d'exploration Web sont devenus l'un des outils les plus importants dans le monde Internet d'aujourd'hui. Ils peuvent parcourir automatiquement divers sites Web sur Internet et extraire les informations utiles dont les gens ont besoin. La technologie de base des robots d'exploration Web automatisés consiste à utiliser des langages de programmation et divers outils pour créer un programme capable de traiter automatiquement les données.

Ces dernières années, Selenium est devenu l'un des outils les plus populaires dans le domaine de l'exploration automatisée du Web. Il s'agit d'un outil de test automatisé multi-navigateurs qui peut simuler des utilisateurs effectuant diverses opérations dans le navigateur, telles que cliquer, faire défiler, taper, etc., et peut également obtenir des données à partir de pages Web. Cela rend Selenium idéal pour créer des robots d'exploration Web automatisés, car il permet aux programmes d'obtenir des données de la même manière que les utilisateurs réguliers.

Cet article explique comment utiliser PHP et Selenium pour créer un robot d'exploration Web automatisé. Le programme d'exploration présenté dans cet article parcourra automatiquement le site Web spécifié et extraira les informations pertinentes telles que le titre, l'auteur, la date de publication et le lien de l'article de tous les articles, et enfin les enregistrera dans un fichier CSV.

Avant de commencer, nous devons installer PHP, Selenium et WebDriver (correspondant au pilote du navigateur). Voici les détails de cet article :

  1. Paramètres d'environnement et configuration de base

Tout d'abord, nous devons installer PHP en local environnement. PHP 7 ou supérieur est recommandé. Ensuite, pour installer Selenium, vous pouvez le faire en utilisant Composer. Utilisez la commande composer dans le dossier du projet pour l'installer. Une fois l'installation réussie, nous pouvons commencer à écrire des programmes PHP.

  1. Appel de WebDriver et de l'API Selenium

Avant d'utiliser Selenium pour créer un robot d'exploration Web automatisé, nous devons appeler WebDriver et créer une instance WebDriver pour interagir avec la communication du navigateur spécifié. WebDriver est une interface de pilote de navigateur et différents navigateurs nécessitent différents WebDrivers.

En PHP, nous pouvons utiliser la bibliothèque client PHP de Selenium pour créer une instance WebDriver et la lier avec le WebDriver du navigateur spécifié. Voici l'exemple de code :

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

// 配置浏览器类型、路径、驱动、和端口
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
  1. Établir une session de navigateur et ouvrir le site Web cible

La création d'une session de navigateur ne nécessite qu'une seule ligne de code , et nous pouvons choisir votre navigateur préféré (Firefox ou Chrome).

Ici, nous utiliserons le navigateur Chrome. Voici l'exemple de code :

// 使用Chrome浏览器打开目标网站
$driver->get('https://example.com');
  1. Rechercher et extraire des données

Après avoir ouvert le site Web cible et chargé la page, nous devons localiser et obtenez toutes les données L'élément qui nécessite des données. Dans cet exemple, nous retrouverons le titre, l’auteur, la date de publication et le lien vers l’article de tous les articles du site cible.

Voici un exemple de code :

// 查找所有文章标题
$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'));

Voici un exemple de code pour rechercher et extraire les données de chaque article :

$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
    );
}
    # 🎜🎜#Les résultats sont enregistrés dans un fichier CSV
La dernière étape consiste à enregistrer les données extraites dans un fichier CSV. Les données peuvent être stockées dans un fichier CSV à l'aide de la fonction intégrée PHP fputcsv().

Voici un exemple de code :

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

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

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

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

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

Cela termine l'extraction du contenu et le traitement des données. Les données du fichier CSV peuvent être utilisées pour une analyse et une application ultérieures. De plus, les données peuvent être importées dans d’autres bases de données pour un traitement ultérieur.

Dans l'ensemble, dans cet article, nous avons appris comment créer un robot d'exploration Web automatisé à l'aide de PHP et Selenium, et comment obtenir et traiter les données du site Web cible et les enregistrer dans un fichier CSV. Cet exemple n'est qu'une simple démonstration, qui peut être appliquée à divers scénarios dans lesquels des données doivent être obtenues à partir du site Web, tels que le référencement, l'analyse de produits concurrentiels, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn