Scrapy: Warum hat mein Antwortobjekt keine body_as_unicode-Methode?
Ich habe eine Spinne geschrieben, die beim ersten Mal hervorragend funktioniert hat. Das zweite Mal, als ich versuchte, es auszuführen, wagte es nicht über das hinausstart_urls
. Ich versuchte zufetch
die url inscrapy shell
und erstelle eineHtmlXPathSelector
Objekt aus der zurückgegebenen Antwort. Dann habe ich den Fehler bekommen
Die Schritte waren also: `
[scrapy shell] fetch('http://example.com') #its something other than example.
[scrapy shell] from scrapy.selector import HtmlXPathSelector
[scrapy shell] hxs = HtmlXPathSelector(response)
---------------------------------------------------------------------------
Zurück verfolgen:
AttributeError Traceback (most recent call last)
<ipython-input-3-a486208adf1e> in <module>()
----> 1 HtmlXPathSelector(response)
/home/codefreak/project-r42catalog/env-r42catalog/lib/python2.7/site-packages/scrapy/selector/lxmlsel.pyc in __init__(self, response, text, namespaces, _root, _expr)
29 body=unicode_to_str(text, 'utf-8'), encoding='utf-8')
30 if response is not None:
---> 31 _root = LxmlDocument(response, self._parser)
32
33 self.namespaces = namespaces
/home/codefreak/project-r42catalog/env-r42catalog/lib/python2.7/site-packages/scrapy/selector/lxmldocument.pyc in __new__(cls, response, parser)
25 if parser not in cache:
26 obj = object_ref.__new__(cls)
---> 27 cache[parser] = _factory(response, parser)
28 return cache[parser]
29
/home/codefreak/project-r42catalog/env-r42catalog/lib/python2.7/site-packages/scrapy/selector/lxmldocument.pyc in _factory(response, parser_cls)
11 def _factory(response, parser_cls):
12 url = response.url
---> 13 body = response.body_as_unicode().strip().encode('utf8') or '<html/>'
14 parser = parser_cls(recover=True, encoding='utf8')
15 return etree.fromstring(body, parser=parser, base_url=url)
Error:
AttributeError: 'Response' object has no attribute 'body_as_unicode'
Übersehe ich etwas sehr offensichtliches oder bin auf einen Fehler in Scrapy gestoßen?