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 :
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.
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);
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');
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 ); }
// 文件流方式打开文件 $file = fopen('articles.csv', 'w'); // 表头 $header = array('Title', 'Author', 'Date', 'Link'); // 写入标题 fputcsv($file, $header); // 写入文章数据 foreach ($articles as $article) { fputcsv($file, $article); } // 关闭文件流 fclose($file);
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!