ホームページ >バックエンド開発 >PHPチュートリアル >JavaScript で生成された動的データを Web サイトからスクレイピングするにはどうすればよいですか?

JavaScript で生成された動的データを Web サイトからスクレイピングするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 17:33:11175ブラウズ

How Can I Scrape Dynamic JavaScript-Generated Data from a Website?

JavaScript によって生成されたデータを Web ページから取得する方法

ページ コンテンツが JavaScript によって動的に生成される場合、Web スクレイピングは困難になる可能性があります。このようなシナリオの 1 つは、http://vtis.vn/index.aspx で発生します。ここでは、ボタンをクリックするまで目的のデータ (「Danh sách chậm」) を利用できません。

PhantomJS を使用したソリューション

このデータをプログラムで取得するには、ヘッドレス WebKit ブラウザーである PhantomJS の利用を検討してください。 JavaScript の機能。 PhantomJS を使用すると、ブラウザ操作のスクリプト作成が可能になり、ボタンのクリックとその後のレンダリングされたデータへのアクセスをシミュレートできます。

スクリプト例:

var page = require('webpage').create();

page.open('http://vtis.vn/index.aspx', function() {
  page.evaluate(function() {
    // Click the "Danh sách chậm" button
    document.querySelector('button[onclick="DanhSachCham();"]').click();
  });

  // Wait for the data to load
  setTimeout(function() {
    var data = page.evaluate(function() {
      // Extract the data from the page
      return document.querySelector('div[id="DivDanhSachTTHT"] tbody').innerHTML;
    });
    console.log(data);
  }, 1000);
});

代替アプローチ: API を使用して

可能であれば、ページが何かを作成しているかどうかを調べます。データを取得するには Ajax 呼び出しをお勧めします。その場合、スクレイピングを回避し、代わりに API と対話してデータを直接取得できる可能性があります。このアプローチは通常、スクレイピングよりも安定しており、保守しやすいです。

以上がJavaScript で生成された動的データを Web サイトからスクレイピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。