2010-05-22 116 views
4

我一直在试图让一个简单的蜘蛛与scrapy运行,但不断收到错误:Scrapy找不到蜘蛛错误

Could not find spider for domain:stackexchange.com

当我运行与表达 scrapy-ctl.py crawl stackexchange.com代码

。蜘蛛是如下:

from scrapy.spider import BaseSpider 
from __future__ import absolute_import 


class StackExchangeSpider(BaseSpider): 
    domain_name = "stackexchange.com" 
    start_urls = [ 
     "http://www.stackexchange.com/", 
    ] 

    def parse(self, response): 
     filename = response.url.split("/")[-2] 
     open(filename, 'wb').write(response.body) 

SPIDER = StackExchangeSpider()` 

完全相同的问题几个月前另一个人几乎贴,但并没有说他们是如何解决它,Scrapy spider is not working 我一直在关注turtorial正是在http://doc.scrapy.org/intro/tutorial.html,并不能找出它为什么不管用。

当我在Eclipse中运行这个代码,我得到的错误

Traceback (most recent call last): File "D:\Python Documents\dmoz\stackexchange\stackexchange\spiders\stackexchange_spider.py", line 1, in <module> from scrapy.spider import BaseSpider ImportError: No module named scrapy.spider

我想不通为什么它没有找到基地蜘蛛模块。我的蜘蛛是否必须保存在脚本目录中?

+0

我的蜘蛛没有任何规则声明,所以我不认为这适用。但我可能是错的。 – Kristin 2010-05-22 01:04:25

+0

使用本教程中定义的DmozSpider时,您会遇到同样的错误吗? – unutbu 2010-05-22 01:36:14

+0

我还没有尝试与dmoz作为域。我所做的只是改变它爬行的网站。 – Kristin 2010-05-22 01:46:28

回答

2

尝试运行python yourproject/spiders/domain.py以查看是否有任何语法错误。由于scrapy依赖亲属进口,我认为你不应该启用绝对导入。

+1

它说它找不到scrapy.spider模块 – Kristin 2010-05-23 17:03:44

+0

雅,第一个问题说'找不到蜘蛛的域:stackexchange.com'这是一个scrapy消息,因此scrapy模块加载正确。后一个问题与eclipse和pythonpath有关。 – Rolando 2010-05-23 21:23:49

+1

问题修复。在另一台计算机上重新安装。必须有文件错位或安装错误。 – Kristin 2010-05-25 22:53:08