【问题标题】:Scrapy crashes (wont run) on basic example基本示例上的 Scrapy 崩溃(不会运行)
【发布时间】:2015-07-17 15:43:08
【问题描述】:

我在 Windows 7 x64 上使用 Python 2.7 (Anaconda)。我通过 pip 安装了 Scrapy。安装的版本是 1.0.1。我正在尝试在tutorial 中运行基本示例,即:

import scrapy


class StackOverflowSpider(scrapy.Spider):
    name = 'stackoverflow'
    start_urls = ['http://stackoverflow.com/questions?sort=votes']

    def parse(self, response):
        for href in response.css('.question-summary h3 a::attr(href)'):
            full_url = response.urljoin(href.extract())
            yield scrapy.Request(full_url, callback=self.parse_question)

    def parse_question(self, response):
        yield {
            'title': response.css('h1 a::text').extract()[0],
            'votes': response.css('.question .vote-count-post::text').extract()[0],
            'body': response.css('.question .post-text').extract()[0],
            'tags': response.css('.question .post-tag::text').extract(),
            'link': response.url,
        }

然后在命令行:

scrapy runspider stackoverflow_spider.py -o top-stackoverflow-questions.json

然而,Python 在做任何事情之前就崩溃了。 Windows 报告:

python.exe 已停止工作

我得到的命令提示符中的唯一输出是:

C:\Anaconda\lib\site-packages\scrapy\commands\deploy.py:16: ScrapyDeprecationWarning: Module `scrapy.command` is deprecated, use`scrapy.commands` instead
  from scrapy.command import ScrapyCommand
2015-07-17 16:39:28 [scrapy] INFO: Scrapy 1.0.1 started (bot: scrapybot)
2015-07-17 16:39:28 [scrapy] INFO: Optional features available: ssl, http11, boto
2015-07-17 16:39:28 [scrapy] INFO: Overridden settings: {'FEED_FORMAT': 'json','FEED_URI': 'top-stackoverflow-questions.json'}

有人知道如何让 Scrapy 工作吗?是不是我安装错了?


根据@Amol 的回答,我已经使用 pip 卸载了 Scrapy,然后从 Python/Anconda 包目录中删除了所有文件夹。然后使用 pip 重新安装。同样的问题仍然存在,但在崩溃之前输出的第一行已经消失。现在的输出是:

2015-07-17 16:39:28 [scrapy] INFO: Scrapy 1.0.1 started (bot: scrapybot)
2015-07-17 16:39:28 [scrapy] INFO: Optional features available: ssl, http11, boto
2015-07-17 16:39:28 [scrapy] INFO: Overridden settings: {'FEED_FORMAT': 'json','FEED_URI': 'top-stackoverflow-questions.json'}

【问题讨论】:

  • 它对我有用。另外,为什么不使用 stackexchange api 而不是 web-scraping?
  • @alecxe 我不想废弃 stackexchange,它只是教程中的示例。您使用的是什么操作系统/设置?
  • Mac、Python 2.7、Scrapy 1.0.1。没有错误,运行并提取 50 个项目,发出 51 个请求。
  • 可能和anaconda有关?尝试另一种解释器实现。

标签: python crash scrapy


【解决方案1】:

scrapy\commands\deploy.py 文件不应该出现在 1.0.1 版本中。该文件可能有一些代码依赖于导致 python.exe 崩溃的一些已弃用/移动的代码。

快速查看我机器上存在的虚拟环境中的文件告诉我:
对于scrapy 0.24.4:此文件存在
对于scrapy 1.0.1:此文件已被删除

此文件存在于您的 scrapy 1.0.1 安装中,这表明安装可能没有正确进行。也就是说,以前版本的文件仍然存在。

您可能想要删除 scrapy,删除 scrapy 目录并重新安装。

【讨论】:

  • 我卸载并重新安装,输出的第一行引用 deploy.py 已经破坏,但它仍然崩溃。见上面的答案
  • 看来您必须启动调试器并逐步检查。
【解决方案2】:

我想不通。所以没有绝缘的Python并重新安装它,现在scrapy可以工作了。虽然不理想

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2020-08-15
    • 2012-04-02
    相关资源
    最近更新 更多