python - 响应对象没有属性编码,出现抓取错误

标签 python web-scraping scrapy

我在scrapy中发现了这个错误

   File "/usr/lib/pymodules/python2.7/scrapy/selector/factories.py", line 20, in body_as_utf8
   if response.encoding in utf8_encodings:
   exceptions.AttributeError: 'Response' object has no attribute 'encoding'

导致它的代码如下
 def parse(self, response):
    hxs = HtmlXPathSelector(response)

我正在尝试解析url
    http://itunes.apple.com/WebObjects/MZStore.woa/wa/customerReviews?id=382034404%0A

使用用户代理字符串
   iTunes/10.2 (Macintosh; U; PPC Mac OS X 10.2)

你知道错误是什么吗?我觉得很奇怪,这个代码总是在我的其他蜘蛛身上起作用

最佳答案

我没有时间调试它,但我的猜测是,在这种特殊情况下response参数不是HtmlResponseTextResponse
在回调中doprint response.__class__
如果类是scrapy.http.response.Response,那么我猜url会返回一个非文本响应,这显然是没有任何encoding的字节流,并且不能对它使用xpath。

关于python - 响应对象没有属性编码,出现抓取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419773/

相关文章:

python - Scrapy模拟XHR请求-返回400

python - 如何从 XPath 中的类属性获取标题(Python/scrapy)

python - 使用scrapy获取javascript回发参数

Python:从图像中删除 Exif 信息

python - 如何使用 Peewee 执行 .where(somecolumn == None/Null/Empty)?

python - 根据 Beautifulsoup 中的内容排除标签

python - 无法从一些凌乱的脚本中挖掘出格式良好的 json 内容

python - Scrapy with Selenium 爬行但不抓取

python - 如何用授权码换取访问 token Twitter API?

python - 检测连续图像的非/最小变化像素的最快方法