我无法执行以下操作:
from scrapy.selector import Selector
错误是:
文件“/Desktop/KSL/KSL/spiders/spider.py”,第 1 行,在 from scrapy.selector import Selector ImportError: cannot import name Selector
就好像我的机器上没有安装 LXML,但确实如此。另外,我认为这是scrapy内置的默认模块。也许不吧?
想法?
我无法执行以下操作:
from scrapy.selector import Selector
错误是:
文件“/Desktop/KSL/KSL/spiders/spider.py”,第 1 行,在 from scrapy.selector import Selector ImportError: cannot import name Selector
就好像我的机器上没有安装 LXML,但确实如此。另外,我认为这是scrapy内置的默认模块。也许不吧?
想法?
尝试导入HtmlXPathSelector。
from scrapy.selector import HtmlXPathSelector
然后使用.select()方法解析出你的 html。例如,
sel = HtmlXPathSelector(response)
site_names = sel.select('//ul/li')
如果您遵循 Scrapy 网站 ( http://doc.scrapy.org/en/latest/intro/tutorial.html ) 上的教程,更新后的示例将如下所示:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
sel = HtmlXPathSelector(response)
sites = sel.select('//ul/li')
for site in sites:
title = site.select('a/text()').extract()
link = site.select('a/@href').extract()
desc = site.select('text()').extract()
print title, link, desc
希望这可以帮助!
我遇到同样的问题。我认为你的scrapy版本有问题。
你可以输入scrapy version -v
cmd 来检查版本。据我所知,最新版本是0.24.4(2014.10.23)。您可以访问http://scrapy.org/以找到最新的。
有同样的问题是由于我安装scrapy的方式(我的操作系统是Ubuntu)。我做到了
sudo apt-get install python-scrapy
而是从 python 安装它。如果你使用 Anaconda 就这样做
conda install -c scrapinghub scrapy
如果没有,那么
pip install Scrapy