首先,我遵循来自:http://doc.scrapy.org/en/0.16/intro/tutorial.html的教程。
我运行:
scrapy shell http://www.dmoz.org/Computers/Programming/Languages/Python/Books/从教程中可以看到:“shell还实例化了两个选择器,一个用于HTML (在hxs变量中),另一个用于XML (在xxs变量中)。所以让我们尝试一下:”
但是,我的输出没有hxs或xxs作为可用对象:
[s] Available Scrapy objects:
[s] crawler <scrapy.crawler.Crawler object at 0x03B33750>
[s] item {}
[s] request <GET http://tvtorrents.com/loggedin/show.do?id=3845>
[s] response <200 http://tvtorrents.com/login.do>
[s] settings <scrapy.settings.Settings object at 0x02718790>
[s] spider <Spider 'default' at 0x3e30190>
[s] Useful shortcuts:
[s] shelp() Shell help (print this help)
[s] fetch(req_or_url) Fetch request (or URL) and update local objects
[s] view(response) View response in a browser我期待的是:
[s] hxs <HtmlXPathSelector (http://www.dmoz.org/Computers/Programming/Languages/Python/Books/) xpath=None>
[s] xxs <XmlXPathSelector (http://www.dmoz.org/Computers/Programming/Languages/Python/Books/) xpath=None>作为“可用对象”。
这使我无法像这样优化输出:
In [1]: hxs.select('//title')
Out[1]: [<HtmlXPathSelector (title) xpath=//title>]如有任何帮助,我们不胜感激!
发布于 2014-08-11 08:32:46
这是一个版本问题:您正在使用的教程是为Scrapy 0.16编写的,而您使用的是较新版本的Scrapy。使用此链接获取最新的可用教程:http://doc.scrapy.org/en/latest/intro/tutorial.html。
另外,仅供参考,您现在应该使用response.xpath():
$ scrapy shell http://stackoverflow.com
>>> response.xpath('//title')
[<Selector xpath='//title' data=u'<title>Stack Overflow</title>'>]
>>> response.xpath('//title').extract()
[u'<title>Stack Overflow</title>']
>>> response.xpath('//title/text()').extract()
[u'Stack Overflow']https://stackoverflow.com/questions/25234117
复制相似问题