我是编程方面的新手,我正在尝试学习scrapy,使用scrapy教程:http://doc.scrapy.org/en/latest/intro/tutorial.html
所以我跑了" scrapy crawl dmoz"命令并得到此错误:
2015-07-14 16:11:02 [scrapy] INFO: Scrapy 1.0.1 started (bot: tutorial)
2015-07-14 16:11:02 [scrapy] INFO: Optional features available: ssl, http11
2015-07-14 16:11:02 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'tu
torial.spiders', 'SPIDER_MODULES': ['tutorial.spiders'], 'BOT_NAME': 'tutorial'}
2015-07-14 16:11:05 [scrapy] INFO: Enabled extensions: CloseSpider, TelnetConsol
e, LogStats, CoreStats, SpiderState
Unhandled error in Deferred:
2015-07-14 16:11:06 [twisted] CRITICAL: Unhandled error in Deferred:
2015-07-14 16:11:07 [twisted] CRITICAL:
我使用的是Windows 7和python 2.7。谁知道问题是什么?我怎么能解决这个问题?
编辑:我的蜘蛛文件代码是:
# This package will contain the spiders of your Scrapy project
#
# Please refer to the documentation for information on how to create and manage
# your spiders.
import scrapy
class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/computers/programming/languages/python/books/",
"http://www.dmoz.org/computer/programming/languages/python/resources/"
]
def parse(self, response):
filename = response.url.split("/")[-2] + '.html'
with open(filename,'wb') as f:
f.write(response.body)
items.py代码:
import scrapy
class DmozItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()
desc = scrapy.Field()
点子列表:
因为我的英语不好而引起注意和讽刺,不是我的母语。
答案 0 :(得分:2)
我也开始学习scrapy并遇到与你相同的问题。 在经历了一个下午的努力之后,我终于找到了它,因为pywin32模块只能在没有安装的情况下下载。 您可以尝试在cmd中输入以下命令来完成pywin32模块安装并再次尝试抓取:
python python27 \ scripts \ pywin32_postinstall.py -install
我希望它会有所帮助!
答案 1 :(得分:2)
简短的回答是你缺少pywin32!
其他答案基本上是正确的,但不是100%正确。 pywin32不是一个pip安装!您必须从此处下载安装程序包:
http://sourceforge.net/projects/pywin32/files/pywin32/
确保你得到正确的位:32或64.在我的情况下,我没有意识到我在我的64位机器上安装了32位版本的Python而安装程序失败并且#34;找不到Python 2.7在注册表中安装"。我不得不安装32位版本的pywin32。一旦我这样做, scrapy抓取网站就可以了。
答案 2 :(得分:0)
我不会看到你在处理文件时对项目做了什么。但它的进口可能。尝试这个,如果这不起作用尝试,pip安装pywin --update和pip安装Twisted --update,应该重新安装任何损坏的文件。 另外我不知道它是否存在Stack的问题,但你有一些错位的身份。 来自scrapy.spiders导入Spider
from {Projectname}.items import {Itemclass}
import scrapy
class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/computers/programming/languages/python/books/",
"http://www.dmoz.org/computer/programming/languages/python/resources/"]
def parse(self, response):
filename = response.url.split("/")[-2] + '.html'
with open(filename,'wb') as f:
f.write(response.body)
答案 3 :(得分:0)
Scrapy崩溃:ImportError:没有名为win32api的模块
由于这个Twisted错误,你需要安装pywin32。