scrapy 教程中扭曲的严重未处理错误
twisted critical unhandled error on scrapy tutorial
我是编程新手,我正在尝试学习 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()
点列表:
- bootstrap-admin (0.3.3)
- cffi (1.1.2)
- 特征 (14.3.0)
- 密码学 (0.9.3)
- cssselect (0.9.1)
- Django (1.7.7)
- django-auth-ldap (1.2.4)
- django-调试工具栏 (1.3.0)
- django-mssql (1.6.2)
- django-pyodbc (0.2.6)
- django-pyodbc-azure (1.2.2)
- django-redator (0.2.3)
- django-reversion (1.8.5)
- django-summernote (0.6.0)
- django-windows-工具 (0.1.1)
- django-wysiwyg-redactor (0.4.3.2)
- enum34 (1.0.4)
- ez-setup (0.9)
- flup (1.0.2)
- idna (2.0)
- ip 地址 (1.0.13)
- iso8601 (0.1.4)
- 日志记录 (0.4.9.6)
- lxml (3.4.4)
- 机械化 (0.2.5)
- MySQL-python (1.2.4)
- pbr (0.10.8)
- 枕头 (2.7.0)
- 点 (7.1.0)
- pyasn1 (0.1.8)
- pyasn1-模块 (0.0.6)
- pycparser (2.14)
- pymongo (2.6)
- pyodbc (3.0.7)
- pyOpenSSL (0.15.1)
- pypm (1.4.3)
- python-ldap (2.4.18)
- pythonselect (1.3)
- pywin32 (218.3)
- queuelib (1.2.2)
- Scrapy (1.0.1)
- 硒 (2.44.0)
- 服务身份 (14.0.0)
- 设置工具 (18.0.1)
- 六个 (1.9.0)
- sqlparse (0.1.15)
- 装卸工 (1.3.0)
- 扭曲 (15.2.1)
- 虚拟环境 (1.11.6)
- virtualenv-clone (0.2.5)
- virtualenvwrapper (4.3.2)
- virtualenvwrapper-powershell (12.7.8)
- w3lib (1.11.0)
- xlrd (0.9.2)
- zope.interface (4.1.2)
感谢关注,抱歉我的英语不好,这不是我的母语。
我也开始学scrapy了,遇到了和你一样的问题。
折腾了一个下午,终于发现是pywin32模块只下载没有安装的问题。
您可以尝试在cmd中输入以下命令完成pywin32模块安装并再次尝试爬取:
python python27\scripts\pywin32_postinstall.py -install
希望对您有所帮助!
我没看到你在写入文件时对项目做了什么。但它可能是进口的。如果这不起作用,请尝试此操作,尝试 pip install pywin --update 和 pip install Twisted --update,这应该会重新安装任何损坏的文件。
另外我不知道这是否是 Stack 的问题,但你有一些错误的标识。
从 scrapy.spiders 导入蜘蛛
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)
Scrapy 崩溃:导入错误:没有名为 win32api 的模块
由于这个 Twisted 错误,您需要安装 pywin32。
简短的回答是你缺少pywin32!
其他答案基本正确,但不是100%正确。 pywin32 不是 pip 安装!您必须从此处下载安装程序包:
http://sourceforge.net/projects/pywin32/files/pywin32/
确保您获得正确的位:32 或 64。在我的例子中,我没有意识到我在我的 64 位机器上安装了 32 位版本的 Python,并且安装程序失败并显示 "Cannot find Python 2.7 installation in registry".我必须安装 32 位版本的 pywin32。一旦我这样做了,scrapy 爬网站点 就起作用了。
我是编程新手,我正在尝试学习 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()
点列表:
- bootstrap-admin (0.3.3)
- cffi (1.1.2)
- 特征 (14.3.0)
- 密码学 (0.9.3)
- cssselect (0.9.1)
- Django (1.7.7)
- django-auth-ldap (1.2.4)
- django-调试工具栏 (1.3.0)
- django-mssql (1.6.2)
- django-pyodbc (0.2.6)
- django-pyodbc-azure (1.2.2)
- django-redator (0.2.3)
- django-reversion (1.8.5)
- django-summernote (0.6.0)
- django-windows-工具 (0.1.1)
- django-wysiwyg-redactor (0.4.3.2)
- enum34 (1.0.4)
- ez-setup (0.9)
- flup (1.0.2)
- idna (2.0)
- ip 地址 (1.0.13)
- iso8601 (0.1.4)
- 日志记录 (0.4.9.6)
- lxml (3.4.4)
- 机械化 (0.2.5)
- MySQL-python (1.2.4)
- pbr (0.10.8)
- 枕头 (2.7.0)
- 点 (7.1.0)
- pyasn1 (0.1.8)
- pyasn1-模块 (0.0.6)
- pycparser (2.14)
- pymongo (2.6)
- pyodbc (3.0.7)
- pyOpenSSL (0.15.1)
- pypm (1.4.3)
- python-ldap (2.4.18)
- pythonselect (1.3)
- pywin32 (218.3)
- queuelib (1.2.2)
- Scrapy (1.0.1)
- 硒 (2.44.0)
- 服务身份 (14.0.0)
- 设置工具 (18.0.1)
- 六个 (1.9.0)
- sqlparse (0.1.15)
- 装卸工 (1.3.0)
- 扭曲 (15.2.1)
- 虚拟环境 (1.11.6)
- virtualenv-clone (0.2.5)
- virtualenvwrapper (4.3.2)
- virtualenvwrapper-powershell (12.7.8)
- w3lib (1.11.0)
- xlrd (0.9.2)
- zope.interface (4.1.2)
感谢关注,抱歉我的英语不好,这不是我的母语。
我也开始学scrapy了,遇到了和你一样的问题。 折腾了一个下午,终于发现是pywin32模块只下载没有安装的问题。 您可以尝试在cmd中输入以下命令完成pywin32模块安装并再次尝试爬取:
python python27\scripts\pywin32_postinstall.py -install
希望对您有所帮助!
我没看到你在写入文件时对项目做了什么。但它可能是进口的。如果这不起作用,请尝试此操作,尝试 pip install pywin --update 和 pip install Twisted --update,这应该会重新安装任何损坏的文件。 另外我不知道这是否是 Stack 的问题,但你有一些错误的标识。 从 scrapy.spiders 导入蜘蛛
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)
Scrapy 崩溃:导入错误:没有名为 win32api 的模块
由于这个 Twisted 错误,您需要安装 pywin32。
简短的回答是你缺少pywin32!
其他答案基本正确,但不是100%正确。 pywin32 不是 pip 安装!您必须从此处下载安装程序包:
http://sourceforge.net/projects/pywin32/files/pywin32/
确保您获得正确的位:32 或 64。在我的例子中,我没有意识到我在我的 64 位机器上安装了 32 位版本的 Python,并且安装程序失败并显示 "Cannot find Python 2.7 installation in registry".我必须安装 32 位版本的 pywin32。一旦我这样做了,scrapy 爬网站点 就起作用了。