我正在使用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上。
我的项目结构是:
答案 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