Créez un robot d'exploration Web efficace en utilisant PHP et Selenium

王林
Libérer: 2023-06-15 12:32:02
original
866 Les gens l'ont consulté

Avec l'avènement de l'ère de l'information, les sites Web sont considérés comme l'un des principaux moyens d'obtenir des informations. Cependant, il est très fastidieux d'obtenir manuellement des informations sur le site Web. Il existe donc un moyen d'explorer automatiquement les pages Web : les robots d'exploration Web. Cet article explique comment utiliser PHP et Selenium pour créer un robot d'exploration Web efficace afin de collecter automatiquement des informations.

Tout d’abord, vous devez installer PHP et Selenium. Selenium est un outil de test d'automatisation Web qui simule les opérations des utilisateurs sur les pages Web. Selenium peut interagir avec plusieurs langages, dont PHP. Pour les méthodes d'installation, veuillez vous référer à la documentation officielle.

La prochaine étape consiste à intégrer Selenium en PHP. Tout d’abord, installez la bibliothèque Selenium pour PHP. Il peut être installé via Composer :

composer require facebook/webdriver
Copier après la connexion

Après l'installation, vous devez définir votre pilote web. Le navigateur Chrome est utilisé ici, mais Selenium prend en charge plusieurs navigateurs. Le code suivant peut être enregistré dans un fichier séparé :

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

require_once('vendor/autoload.php');

$host = 'http://localhost:4444/wd/hub';

$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability('goog:chromeOptions', ['args' => ['--headless']]);

$driver = RemoteWebDriver::create($host, $capabilities);
Copier après la connexion

Analyse du code :

  • Introduit les classes et fichiers nécessaires
  • Définit l'adresse du pilote et les options du navigateur Chrome
  • via RemoteWebDriver</ la classe code> crée une connexion avec le pilote <code>RemoteWebDriver类创建到驱动程序的连接

一旦连接到了驱动程序,你可以开始模拟用户的操作。例如,访问一个网站:

$driver->get('http://news.baidu.com');
Copier après la connexion

这将打开百度新闻并获取所有的新闻链接:

$news_links = $driver->findElements(WebDriverBy::cssSelector('.c-title a'));
$links = [];
foreach ($news_links as $news_link) {
    $links[] = $news_link->getAttribute('href');
}
Copier après la connexion

代码解析:

  • 使用WebDriverBy::cssSelector通过CSS选择器方式获取所有的新闻链接
  • 遍历每个链接,获取每个链接的URL

现在你获得了所有的新闻链接,你可以遍历它们依次爬取每个链接的内容:

foreach ($links as $link) {
    $driver->get($link);
    $news_title = $driver->findElement(WebDriverBy::cssSelector('.article-title'))->getText();
    $news_content = $driver->findElement(WebDriverBy::cssSelector('.article-content'))->getText();
    // 保存新闻标题和内容至数据库
}
Copier après la connexion

代码解析:

  • 通过WebDriverBy::cssSelector
  • Une fois connecté au pilote, vous pouvez commencer à simuler les actions de l'utilisateur. Par exemple, visitez un site Web :
  • rrreee
Cela ouvrira Baidu News et obtiendra tous les liens d'actualités :

rrreee

Analyse du code : 🎜🎜🎜Utilisez WebDriverBy::cssSelector pour obtenir tous les liens d'actualités via Sélecteur CSS Liens d'actualités🎜🎜Parcourez chaque lien et obtenez l'URL de chaque lien🎜🎜🎜Maintenant que vous avez obtenu tous les liens d'actualités, vous pouvez les parcourir et explorer le contenu de chaque lien tour à tour :🎜rrreee🎜Analyse du code :🎜 🎜🎜Passed WebDriverBy::cssSelector localise l'élément spécifié et obtient le contenu textuel de l'élément🎜🎜Stockez le titre et le contenu de l'actualité dans la base de données🎜🎜🎜Ce qui précède est la base pour construire un site Web efficace robot d'exploration utilisant PHP et Selenium. Bien sûr, si une optimisation supplémentaire est nécessaire, vous pouvez l'utiliser en combinaison avec plusieurs outils et technologies, tels que l'utilisation du multithreading pour améliorer l'efficacité, l'utilisation de l'anti-obscurcissement des polices pour résoudre le problème de certains sites Web désobscurcissant les polices, etc. Le monde des robots d'exploration regorge de choses étranges, j'espère que vous pourrez découvrir les méthodes et les outils qui vous conviennent le mieux ! 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!