Scrapy 找不到爬虫错误

4 投票
1 回答
3010 浏览
提问于 2025-04-15 23:00

我一直在尝试用scrapy运行一个简单的爬虫,但每次运行时都出现这个错误:

找不到域名为: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爬虫无法工作。我一直在严格按照这个教程 http://doc.scrapy.org/intro/tutorial.html 来做,但就是搞不明白为什么不行。

当我在eclipse中运行这段代码时,出现了这个错误:

追踪记录(最近的调用在最前面): 文件 "D:\Python Documents\dmoz\stackexchange\stackexchange\spiders\stackexchange_spider.py",第1行,在 <module> from scrapy.spider import BaseSpider 导入错误:没有名为scrapy.spider的模块

我搞不明白为什么找不到基本的Spider模块。我的爬虫代码是不是必须保存在脚本目录里?

1 个回答

2

试着运行 python yourproject/spiders/domain.py 来看看有没有语法错误。我觉得你不应该启用绝对导入,因为 Scrapy 依赖于相对导入。

撰写回答