Scrapy:此服务不提供或不允许来源

时间:2016-02-11 20:37:06

标签: json ajax web-scraping xmlhttprequest scrapy

因此,我尝试抓取产品在目标上的评分,并使用ajax。我发现XHR的URL是: http://tws.target.com/productservice/services/reviews/v1/reviewstats/21499594

现在这部分让我困惑: 1.如果我去target.com,搜索该特定产品,打开它,然后转到上面提到的URL,我可以在浏览器中看到json文件 2.但是,如果我只是直接在浏览器中输入URL,我会收到一条错误消息,说明"来源未提供或此服务不允许。"

那么原因是什么?如何解决这个问题? 谢谢! (我顺便使用scrapy)

1 个答案:

答案 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)