Web クローリング操作に PHP と phpSpider を使用するにはどうすればよいですか?

PHPz
リリース: 2023-07-22 08:30:02
オリジナル
823 人が閲覧しました

PHP と phpSpider を使用して Web クローラー操作を実行するにはどうすればよいですか?

[はじめに]
今日の情報爆発の時代では、インターネット上に膨大な量の貴重なデータが存在しており、Web クローラーは Web から自動的にクロールして抽出するために使用できる強力なツールです。ページデータ。人気のプログラミング言語である PHP は、オープンソース ツールである phpSpider と組み合わせることで、Web クローラー機能を迅速かつ効率的に実装できます。

[具体的な手順]

  1. phpSpider のインストール
    まず、phpSpider ツールをインストールする必要があります。これは、コンポーザーを介してインストールでき、ターミナルまたはコマンド プロンプトを開いて、次のコマンドを実行します。

    composer require sunra/php-simple-html-dom-parser
    ログイン後にコピー
  2. 単純なクローラーの作成
    次に、クロールする単純なクローラーを作成します。 Web ページ上のコンテンツ。まず、spider.php という名前のファイルを作成し、そのファイルに次のコードを追加します。

    <?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 . "
    ";
    }
    
    ?>
    ログイン後にコピー

    スクリプトを実行すると、クロールされた Web ページのタイトルとすべてのリンクがコマンド ラインまたはターミナルに表示されます。

  3. クロール ルールの指定
    phpSpider は、より高度な機能も提供しており、CSS セレクターまたは XPath を使用して、クロールするコンテンツを指定できます。たとえば、以下に示すように、上記のコードを変更して、指定された CSS クラス名「product」を持つ要素のみをキャプチャすることができます。

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

    変更したコードを実行して、CSS クラス名「product」要素のみを出力し、彼らのリンク。

  4. リクエスト ヘッダーの設定
    Web サイトは、リクエスト ヘッダーの内容に基づいてクローラー対策処理を実行することがあります。リクエストを送信するブラウザーをより適切にシミュレートするために、次のことができます。リクエストヘッダーを設定します。以下に示すように:

    <?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);
    
    // ...
    
    ?>
    ログイン後にコピー

    変更されたコードを実行して、シミュレートされたブラウザーのリクエスト ヘッダーを使用してクロールします。

[概要]
PHP とオープンソースツール phpSpider を組み合わせることで、Web クローラーの機能を簡単に実装できます。この記事では、phpSpider のインストール、簡単なクローラーの作成、Web ページ上のコンテンツをクロールする方法、CSS セレクターまたは XPath を使用してクロールするコンテンツを指定する方法、リクエスト ヘッダーをシミュレート ブラウザーに設定する方法を紹介しました。リクエスト。この記事が、PHP と phpSpider を理解して Web クローリング操作に使用するのに役立つことを願っています。

以上がWeb クローリング操作に PHP と phpSpider を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート