为什么我的scrapy反应体是空的?

时间:2014-09-14 03:09:55

标签: scrapy

我最近在学习scrapy。我尝试使用它的简单方法来获取响应体,但我得到一个空字符串。

这是我的代码:

>>> from scrapy.http import Response
>>> r = Response('http://zenofpython.blog.163.com/blog/static/23531705420146124552782')
>>> r.body
''
>>> r.headers
{}
>>> r.status
200

没有任何困难,我可以通过浏览器访问上面用于scrapy响应的网址。它内容丰富。

我在这里犯了什么错误?

2 个答案:

答案 0 :(得分:3)

您的问题的另一个原因可能是该网站需要User-Agent标头。试试这个

scrapy shell http://www.to.somewhere -s USER_AGENT='Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0'

您可以阅读更多here

答案 1 :(得分:1)

您应该获取Request并获得Response个对象作为回报。

尝试做:

r = Request(url='http://zenofpython.blog.163.com/blog/static/23531705420146124552782')
fetch(r)
scrapy shell

,您就可以将结果作为Response对象获取。

print response.body