ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js と PhantomJS を使用して動的 Web コンテンツをスクレイピングするにはどうすればよいですか?

Node.js と PhantomJS を使用して動的 Web コンテンツをスクレイピングするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-01 01:07:10
オリジナル
601 人が閲覧しました

How Can I Scrape Dynamic Web Content Using Node.js and PhantomJS?

Node.js を使用した動的コンテンツのスクレイピング: 詳細ガイド

Web スクレイピングの領域では、動的コンテンツは次のような重大な課題を提示します。これらの要素は最初の HTML 応答には存在しませんが、非同期的にロードされます。この障害を克服するために、ページをレンダリングして目的のコンテンツを取得するプログラムによるソリューションに目を向けます。

この場合、空の

    に動的に読み込まれる要素のリストを備えた Web サイトがあります。タグ。 Cheerio を使用した最初の試みでは、これらの要素が最初の HTML 応答に存在しなかったため、取得できませんでした。

    PhantomJS の力

    この課題に取り組むために、プログラムで制御できるヘッドレスブラウザであるPhantomJSを採用しています。 PhantomJS をコードに組み込むことで、ページ上で JavaScript を実行し、動的コンテンツが読み込まれるのを待ってから、Cheerio を使用してスクレイピングすることができます。

    コード ウォークスルー

    これはPhantomJS を組み込んだ改良されたコード スニペット:

    var phantom = require('phantom');
    
    phantom.create(function (ph) {
      ph.createPage(function (page) {
        var url = "http://www.bdtong.co.kr/index.php?c_category=C02";
        page.open(url, function() {
          page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
            page.evaluate(function() {
              $('.listMain > li').each(function () {
                console.log($(this).find('a').attr('href'));
              });
            }, function(){
              ph.exit()
            });
          });
        });
      });
    });
    ログイン後にコピー

    このコードは PhantomJS を初期化します。ページを作成し、ターゲット URL を開き、ページのコンテンツを操作するための jQuery ライブラリを組み込み、JavaScript 関数を実行して必要な要素を抽出します。完了すると、PhantomJS は終了します。

    結論

    PhantomJS の機能を活用し、スクレイピング コードに組み込むことで、Web サイトから動的コンテンツを簡単に取得できるようになりました。この強力なアプローチにより、精度と効率を高めてさまざまな Web スクレイピングの課題に取り組むことができます。

    以上がNode.js と PhantomJS を使用して動的 Web コンテンツをスクレイピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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