I'm writing a crawler using Scrapy. I've built a crawler and it works very well.
Now I want to create my own modules, but I always receive this error:
File "D:\Projects\bitbucket\terranoha\crawl1\crawl1\spiders\samplecrawler.py", line 4, in import moduletest
ModuleNotFoundError: No module named 'moduletest'
The code is:
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
import moduletest
class SamplecrawlerSpider(CrawlSpider):
# [...]
I am running: scrapy crawl --nolog samplecrawler
. I'm on Windows 10.
My project structure is:
you have to include the name of the folder as the module name
Found, after some hours:
import crawl1.spiders.moduletest
you need to include the full module path:
You can do several things:
First
As suggested by @elRuLL
Second
This generally a bad and brittle solution but possible.
Third
You can package it as package and do.
init.py:
samplecrawler.py