无法在scrapy搜寻器中导入我自己的模块

时间:2018-12-20 14:55:02

标签: 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):
    # [...]

我正在跑步:scrapy crawl --nolog samplecrawler。我在Windows 10上。

我的项目结构是:

enter image description here

4 个答案:

答案 0 :(得分:2)

您可以做几件事:

第一

from crawl1.spiders.moduletest import mythings

如@elRuLL所建议

第二

from .moduletest import mythings

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

第三

您可以将其打包并打包。

初始 .py:

from spiders.moduletest import *
__all__ = [<Put your classes, methods, etc here>]

samplecrawler.py

import moduletest

答案 1 :(得分:1)

您需要包括完整的模块路径:

from crawl1.spiders.moduletest import mythings

答案 2 :(得分:1)

您必须将文件夹名称作为模块名称

import crawl1.spiders.moduletest

答案 3 :(得分:1)

发现,几个小时后:

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

class SamplecrawlerSpider(CrawlSpider):

导入crawl1.spiders.moduletest