【问题标题】:from scrapy.selector import selector error从 scrapy.selector 导入选择器错误
【发布时间】:2013-10-25 06:09:22
【问题描述】:

我无法执行以下操作:

from scrapy.selector import Selector

错误是:

文件“/Desktop/KSL/KSL/spiders/spider.py”,第 1 行,在 从 scrapy.selector 导入选择器 ImportError: 无法导入名称选择器

好像我的机器上没有安装 LXML,但它是。另外,我认为这是scrapy内置的默认模块。也许不是?

想法?

【问题讨论】:

  • from scrapy.selector import Selector 对应新的统一选择器 API。如果你关注doc.scrapy.org/en/latest/topics/…(0.19 版),你需要从源代码安装 Scrapy。 Scrapy 0.19 尚未在 PyPI 上正式发布

标签: python macos web-scraping scrapy lxml


【解决方案1】:

尝试导入 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

希望这会有所帮助!

【讨论】:

  • 这行得通,但是您在 parse() 的定义中缺少一个冒号。我会编辑它,但 stackoverflow 有一个奇怪的 6 个字符的最小编辑....
【解决方案2】:

我遇到了同样的问题。我认为你的scrapy版本有问题。

您可以在 cmd 中输入scrapy version -v 来检查版本。据我所知,最新版本是0.24.4(2014.10.23)。您可以访问http://scrapy.org/ 查找最新的。

【讨论】:

    【解决方案3】:

    由于我安装 scrapy 的方式(我的操作系统是 Ubuntu),遇到了同样的问题。我是通过

    sudo apt-get install python-scrapy
    

    改为从 python 安装它。如果你使用 Anaconda 就这样做

    conda install -c scrapinghub scrapy
    

    如果没有,那么

    pip install Scrapy
    

    http://doc.scrapy.org/en/latest/intro/install.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      相关资源
      最近更新 更多