2016-07-21 43 views

回答

2

您需要複製您在請求中看到的標頭。

如果檢查響應頭,你可以看到: amazon.ca next page headers

這個,你需要更新你的 scrapy.Request.headers屬性

。幾乎沒有這些值。大多數情況下,您可以跳過Cookie,因爲scrapy自己管理這個cookie,並且通常對於像這樣的ajax請求來說是沒有意義的。

對於這種情況,我設法通過僅複製X-Requested-With標題獲得成功的響應。這個頭文件用來表示ajax請求正在發生。

實際上,你可以測試出,並設計這個實時:

scrapy shell <url> 
# gives you 403 
request.headers.update({'X-Requested-With': 'XMLHttpRequest'}) 
request.headers.update({'User-Agent': <some user agent>}) 
fetch(request) 
# now the request is redownloaded and it's 200!