我正在使用 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。
我的项目结构是:
您可以做几件事:
第一的
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)