首页 > 解决方案 > 我可以从 Scrapy 中的自定义 Spider 继承吗?

问题描述

我在 Scrapy 中创建了一个新项目,我有一个像这样的 Spider:

文件:蜘蛛/customspider.py

import scrapy

class CustomSpider(scrapy.Spider)
    name = 'CustomSpider'

    def start_requests(self):
        pass
        # exec code

然后我创建了一个这样的新蜘蛛:

文件:蜘蛛/otherspider.py

import scrapy
from customspider import CustomSpider

class OtherSpider(CustomSpider)
    name = 'OtherSpier'

    def start_requests(self):
        super().start_requests()

但我收到此错误:

ModuleNotFoundError:没有名为“CustomSpider”的模块

我在文档上找不到任何帮助,有人可以帮助我吗?

谢谢!

标签: pythonpython-3.xscrapy

解决方案


我不熟悉 Scrapy,但您的问题似乎不是关于 Scrapy,而是关于导入模块。

除了代码中的一些语法错误外,问题出在以下语句中:

from customspider import CustomSpider

将其更改为:

from .customspider import CustomSpider

或者

from spiders.customspider import CustomSpider

这假设它spiders是一个模块,并且 Python 应用程序的工作目录比它高一个目录。

或者,如果该目录spiders在您的 Python 路径中,它也应该与您最初发布的代码一起使用(如果其他语法错误已修复)。但是,我不建议将其作为解决方案。


推荐阅读