如何使用scrapy从this page中删除产品列表?
我尝试过浏览器发送的ajax请求网址:
https://www.amazon.cn/gp/profile/A34PAP6LGJIN6N/more?next_batch_params%5Breview_offset%5D=10&_=1469081762384
但它会返回404
。
答案 0 :(得分:2)
您需要复制在请求中看到的标头。
您需要更新scrapy.Request.headers
属性。这些价值很少。在大多数情况下,你可以跳过Cookie,因为scrapy自己管理这个,通常是像这样的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!