我无法执行以下操作:
from scrapy.selector import Selector
错误是:
文件“/Desktop/KSL/KSL/spiders/spider.py”,第1行,在 来自scrapy.selector import Selector ImportError:无法导入名称选择器
就好像我的机器上没有安装LXML,但它确实如此。另外,我认为这是scrapy内置的默认模块。也许不是吗?
思想?
答案 0 :(得分:10)
尝试导入 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
希望这有帮助!
答案 1 :(得分:1)
我遇到同样的问题。我认为你的scrapy版本有问题。
您可以在cmd中键入scrapy version -v
来检查版本。据我所知,最新版本是0.24.4(2014.10.23)。您可以访问http://scrapy.org/以找到最新的。
答案 2 :(得分:0)
由于我安装scrapy的方式(我的操作系统是Ubuntu)导致同样的问题。我是通过
完成的sudo apt-get install python-scrapy
从python中安装它。如果你使用Anaconda就行了
conda install -c scrapinghub scrapy
如果没有,那么
pip install Scrapy