4

我一直在尝试让一个简单的蜘蛛与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 无法正常工作弄清楚为什么它不起作用。

当我在 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

我无法弄清楚为什么它没有找到基本的 Spider 模块。我的蜘蛛必须保存在脚本目录中吗?

4

1 回答 1

2

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

于 2010-05-22T03:00:16.467 回答