【发布时间】: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有关?尝试另一种解释器实现。