因此,我尝试抓取产品在目标上的评分,并使用ajax。我发现XHR的URL是: http://tws.target.com/productservice/services/reviews/v1/reviewstats/21499594
现在这部分让我困惑: 1.如果我去target.com,搜索该特定产品,打开它,然后转到上面提到的URL,我可以在浏览器中看到json文件 2.但是,如果我只是直接在浏览器中输入URL,我会收到一条错误消息,说明"来源未提供或此服务不允许。"
那么原因是什么?如何解决这个问题? 谢谢! (我顺便使用scrapy)
答案 0 :(得分:0)
我找到了一个有效的解决方案,但是如果有人可以告诉我潜在的机制会非常棒:)
所以在我的请求中,我添加了一个标题,说我来自target.com('Origin':'NoMethodError in Posts#Show - undefined method `category' for #'),然后一切正常
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36',
'Origin': 'http://www.target.com'
}
jsoncontent = requests.get(url, headers=head).content
jsdict = json.loads(jsoncontent)