Scrapy 可以處理 AJAX 網站上的動態內容嗎?
Python 的 Scrapy 函式庫提供了一種有效的解決方案,用於抓取透過 AJAX 載入的動態內容的網站。要了解 Scrapy 如何實現這一點,讓我們探索一個使用 rubin-kazan.ru 網站的範例。
網站使用 AJAX 動態載入訊息。分析原始碼可以揭示用於 AJAX 請求的 URL 和表單資料。透過在Scrapy中模擬這個請求,我們可以檢索必要的JSON資料。
這是一個簡化的Scrapy程式碼片段:
import scrapy from scrapy.http import FormRequest class spider(scrapy.Spider): name = 'RubiGuesst' start_urls = ['http://www.rubin-kazan.ru/guestbook.html'] def parse(self, response): url_list_gb_messages = re.search(r'url_list_gb_messages="(.*)"', response.body).group(1) yield FormRequest('http://www.rubin-kazan.ru' + url_list_gb_messages, callback=self.RubiGuessItem, formdata={'page': str(page + 1), 'uid': ''}) def RubiGuessItem(self, response): json_file = response.body
在解析中,我們提取必要的URL並模擬第一個要求。在 RubiGuessItem 中,我們捕獲來自模擬 AJAX 請求的 JSON 回應。透過採用這種技術,Scrapy 甚至可以有效地抓取透過 AJAX 載入的動態內容。
以上是Scrapy 如何有效率地從 AJAX 載入的網站中提取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!