我最近在学习scrapy。我尝试使用它的简单方法来获取响应体,但我得到一个空字符串。
这是我的代码:
>>> from scrapy.http import Response
>>> r = Response('http://zenofpython.blog.163.com/blog/static/23531705420146124552782')
>>> r.body
''
>>> r.headers
{}
>>> r.status
200
没有任何困难,我可以通过浏览器访问上面用于scrapy响应的网址。它内容丰富。
我在这里犯了什么错误?
答案 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