ホームページ >ウェブフロントエンド >jsチュートリアル >Scrapy はどのようにして AJAX を利用した Web サイトから動的コンテンツを取得できますか?
Scrapy が AJAX を利用した Web サイトから動的コンテンツを取得する方法
多くの Web サイトは AJAX テクノロジーを使用して、ページ全体を再読み込みせずにコンテンツを動的に表示します。データがソース コードに存在しないため、これは Scrapy のような Web スクレイパーにとって課題となります。
これに対する 1 つの解決策は、Scrapy に AJAX リクエストを作成させて必要なデータを取得させることです。これを行うには、FormRequest クラスを使用できます。以下に例を示します。
class MySpider(scrapy.Spider): ... def parse(self, response): # Extract the URL for the AJAX request ajax_url = response.css('script').re('url_list_gb_messages="(.*)"')[0] # Create a FormRequest with the appropriate form data yield FormRequest(ajax_url, callback=self.parse_ajax, formdata={'page': '1', 'uid': ''}) def parse_ajax(self, response): # Parse the JSON response and extract the desired data json_data = json.loads(response.body) for item in json_data['items']: yield { 'author': item['author'], 'date': item['date'], 'message': item['message'], ... }
この例では、解析関数は AJAX リクエストの URL を抽出し、必要なフォーム データを含む FormRequest を送信します。次に、parse_ajax 関数が JSON 応答を解析し、必要なデータを抽出します。
この技術により、Scrapy は AJAX を使用する Web サイトから動的コンテンツを取得できます。 AJAX リクエストを行うことで、Scrapy はソース コードに存在しないデータにアクセスできるため、複雑な Web サイトでもスクレイピングすることが可能になります。
以上がScrapy はどのようにして AJAX を利用した Web サイトから動的コンテンツを取得できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。