无法在scrapy爬虫中导入我自己的模块

chr*_*ris 3 python scrapy

我正在使用 Scrapy 编写一个爬虫。我已经构建了一个爬虫并且运行得很好。

现在我想创建自己的模块,但总是收到此错误:

文件“D:\Projects\bitbucket\terranoha\crawl1\crawl1\spiders\samplecrawler.py”,第 4 行,导入 moduletest

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

代码是:

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
import moduletest

class SamplecrawlerSpider(CrawlSpider):
    # [...]
Run Code Online (Sandbox Code Playgroud)

我在跑步: scrapy crawl --nolog samplecrawler。我使用的是 Windows 10。

我的项目结构是:

在此输入图像描述

Dmy*_*kyi 6

您可以做几件事:

第一的

from crawl1.spiders.moduletest import mythings
Run Code Online (Sandbox Code Playgroud)

正如@elRuLL 所建议的

第二

from .moduletest import mythings
Run Code Online (Sandbox Code Playgroud)

这通常是一个糟糕且脆弱的解决方案,但也是可能的。

第三

您可以将其打包为 package 并执行操作。

初始化.py:

from spiders.moduletest import *
__all__ = [<Put your classes, methods, etc here>]
Run Code Online (Sandbox Code Playgroud)

样本爬虫.py

import moduletest
Run Code Online (Sandbox Code Playgroud)