我在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
参数不是HtmlResponse
或TextResponse
。
在回调中doprint response.__class__
如果类是scrapy.http.response.Response
,那么我猜url会返回一个非文本响应,这显然是没有任何encoding
的字节流,并且不能对它使用xpath。
关于python - 响应对象没有属性编码,出现抓取错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419773/