Rumah >hujung hadapan web >tutorial js >Bagaimanakah Scrapy Boleh Mendapatkan Kandungan Dinamik daripada Tapak Web Dikuasakan AJAX?
Cara Scrapy Boleh Mendapatkan Kandungan Dinamik daripada Tapak Web Dikuasakan AJAX
Banyak tapak web menggunakan teknologi AJAX untuk memaparkan kandungan secara dinamik tanpa memuatkan semula keseluruhan halaman. Ini memberikan cabaran kepada pengikis web seperti Scrapy, kerana data tidak terdapat dalam kod sumber.
Satu penyelesaian untuk perkara ini ialah meminta Scrapy membuat permintaan AJAX untuk mendapatkan semula data yang diingini. Untuk melakukan ini, anda boleh menggunakan kelas FormRequest. Berikut ialah contoh:
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'], ... }
Dalam contoh ini, fungsi parse mengekstrak URL untuk permintaan AJAX dan menyerahkan FormRequest dengan data borang yang diperlukan. Fungsi parse_ajax kemudian menghuraikan respons JSON dan mengekstrak data yang dikehendaki.
Teknik ini membolehkan Scrapy mendapatkan semula kandungan dinamik daripada tapak web yang menggunakan AJAX. Dengan membuat permintaan AJAX, Scrapy boleh mengakses data yang tidak terdapat dalam kod sumber, membolehkan anda mengikis walaupun tapak web yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah Scrapy Boleh Mendapatkan Kandungan Dinamik daripada Tapak Web Dikuasakan AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!