Heim >Backend-Entwicklung >PHP-Tutorial >Wie verwende ich PHP und phpSpider für Web-Crawling-Vorgänge?

Wie verwende ich PHP und phpSpider für Web-Crawling-Vorgänge?

PHPz
PHPzOriginal
2023-07-22 08:29:40861Durchsuche

Wie verwende ich PHP und phpSpider für Web-Crawling-Vorgänge?

【Einführung】
In der heutigen Zeit der Informationsexplosion gibt es im Internet eine große Menge wertvoller Daten, und der Webcrawler ist ein leistungsstarkes Tool, mit dem Daten automatisch gecrawlt und von Webseiten extrahiert werden können. Als beliebte Programmiersprache kann PHP durch die Kombination mit phpSpider, einem Open-Source-Tool, Webcrawler-Funktionen schnell und effizient implementieren.

【Spezifische Schritte】

  1. phpSpider installieren
    Zuerst müssen wir das phpSpider-Tool installieren. Es kann über Composer installiert werden, ein Terminal oder eine Eingabeaufforderung öffnen und den folgenden Befehl ausführen:

    composer require sunra/php-simple-html-dom-parser
  2. Einen einfachen Crawler erstellen
    Als nächstes erstellen wir einen einfachen Crawler, um den Inhalt auf der angegebenen Webseite zu crawlen. Erstellen Sie zunächst eine Datei mit dem Namen „spider.php“ und fügen Sie den folgenden Code in die Datei ein:

    <?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 . "
    ";
    }
    
    ?>

    Führen Sie das Skript aus und Sie können den Titel der gecrawlten Webseite und alle Links in der Befehlszeile oder im Terminal sehen.

  3. Crawling-Regeln angeben
    phpSpider bietet auch erweiterte Funktionen. Sie können CSS-Selektoren oder XPath verwenden, um den zu crawlenden Inhalt anzugeben. Beispielsweise können wir den obigen Code ändern, um nur Elemente mit dem angegebenen CSS-Klassennamen „product“ zu erfassen, wie unten gezeigt:

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

    Führen Sie den geänderten Code aus, um nur Elemente mit dem CSS-Klassennamen „product“ und deren Link auszugeben.

  4. Anforderungsheader festlegen
    Manchmal führt die Website eine Anti-Crawler-Verarbeitung basierend auf dem Inhalt des Anforderungsheaders durch. Um den Browser, der eine Anforderung sendet, besser zu simulieren, können wir den Anforderungsheader festlegen. Wie unten gezeigt:

    <?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);
    
    // ...
    
    ?>

    Führen Sie den geänderten Code aus, um ihn mithilfe des Anforderungsheaders des simulierten Browsers zu crawlen.

【Zusammenfassung】
Durch die Kombination von PHP und phpSpider, einem Open-Source-Tool, können wir die Funktion eines Webcrawlers einfach implementieren. In diesem Artikel haben wir vorgestellt, wie man phpSpider installiert, einen einfachen Crawler erstellt und den Inhalt auf der Webseite crawlt. Außerdem haben wir vorgestellt, wie man CSS-Selektoren oder XPath verwendet, um den zu crawlenden Inhalt anzugeben, und wie man Anforderungsheader für den Simulate-Browser festlegt Anfragen. Ich hoffe, dass dieser Artikel Ihnen hilft, PHP und phpSpider für Web-Crawling-Vorgänge zu verstehen und zu verwenden.

Das obige ist der detaillierte Inhalt vonWie verwende ich PHP und phpSpider für Web-Crawling-Vorgänge?. 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