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 サイトの他の関連記事を参照してください。