Maison  >  Article  >  développement back-end  >  Comment utiliser PHP et phpSpider pour les opérations d'exploration Web ?

Comment utiliser PHP et phpSpider pour les opérations d'exploration Web ?

PHPz
PHPzoriginal
2023-07-22 08:29:40752parcourir

Comment utiliser PHP et phpSpider pour les opérations d'exploration Web ?

【Introduction】
À l'ère actuelle d'explosion de l'information, il existe une énorme quantité de données précieuses sur Internet, et le robot d'exploration Web est un outil puissant qui peut être utilisé pour explorer et extraire automatiquement des données à partir de pages Web. En tant que langage de programmation populaire, PHP peut implémenter rapidement et efficacement des fonctions de robot d'exploration Web en le combinant avec phpSpider, un outil open source.

【Étapes spécifiques】

  1. Installer phpSpider
    Tout d'abord, nous devons installer l'outil phpSpider. Il peut être installé via composer, ouvrir un terminal ou une invite de commande et exécuter la commande suivante :

    composer require sunra/php-simple-html-dom-parser
  2. Créer un robot d'exploration simple
    Ensuite, nous créons un robot d'exploration simple pour explorer le contenu de la page Web spécifiée. Tout d'abord, créez un fichier nommé spider.php et ajoutez le code suivant dans le fichier :

    <?php
    
    require 'vendor/autoload.php';
    use SunraPhpSimpleHtmlDomParser;
    
    $url = 'https://www.example.com'; // 指定要爬取的网页URL
    
    // 获取网页内容
    $html = file_get_contents($url);
    
    // 解析HTML
    $dom = HtmlDomParser::str_get_html($html);
    
    // 提取需要的数据
    $title = $dom->find('title', 0)->plaintext; // 获取网页标题
    echo "标题:" . $title . "
    ";
    
    $links = $dom->find('a'); // 获取所有链接
    foreach ($links as $link) {
        echo "链接:" . $link->href . "
    ";
    }
    
    ?>

    Exécutez le script et vous verrez le titre de la page Web explorée et tous les liens sur la ligne de commande ou le terminal.

  3. Spécifier les règles d'exploration
    phpSpider fournit également des fonctionnalités plus avancées, vous pouvez utiliser des sélecteurs CSS ou XPath pour spécifier le contenu à explorer. Par exemple, nous pouvons modifier le code ci-dessus pour capturer uniquement les éléments avec le nom de classe CSS « ​​produit » spécifié, comme indiqué ci-dessous :

    <?php
    
    // ...
    
    // 提取需要的数据
    $elements = $dom->find('.product'); // 获取所有CSS类名为"product"的元素
    foreach ($elements as $element) {
        echo "产品名称:" . $element->plaintext . "
    ";
        echo "产品链接:" . $element->href . "
    ";
    }
    
    ?>

    Exécutez le code modifié pour afficher uniquement les éléments avec le nom de classe CSS « ​​produit » et leur lien.

  4. Définir l'en-tête de la requête
    Parfois, le site Web effectuera un traitement anti-crawler basé sur le contenu de l'en-tête de la requête. Afin de mieux simuler le navigateur qui envoie une requête, nous pouvons définir l'en-tête de la requête. Comme indiqué ci-dessous :

    <?php
    
    // ...
    
    // 设置请求头
    $options = [
        'http' => [
            'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
    "
        ]
    ];
    $context = stream_context_create($options);
    
    // 获取网页内容
    $html = file_get_contents($url, false, $context);
    
    // ...
    
    ?>

    Exécutez le code modifié à explorer à l'aide de l'en-tête de requête du navigateur simulé.

【Résumé】
En combinant PHP et phpSpider, un outil open source, nous pouvons facilement implémenter la fonction de robot d'exploration Web. Dans cet article, nous avons expliqué comment installer phpSpider, créer un robot d'exploration simple et explorer le contenu de la page Web. Nous avons également expliqué comment utiliser les sélecteurs CSS ou XPath pour spécifier le contenu à analyser et comment définir les en-têtes de requête sur Simuler le navigateur. demandes. J'espère que cet article vous aidera à comprendre et à utiliser PHP et phpSpider pour les opérations d'exploration Web.

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