我有一个scrapy爬虫,我想在我的爬虫中使用本地库。
所以,这是我的目录模型:
有两个重要文件db / base.py和/crawler/spiders/adilisik.py
这里是base.py
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
engine = create_engine("mysql+pymysql://xxx:yyy@localhost/test-db")
Session = sessionmaker(bind=engine)
session = Session()
以下是adilisik.php的一些内容
# -*- coding: utf-8 -*-
import hashlib
import re
import scrapy
from crawler.db.base import Base
class AdilisikSpider(scrapy.Spider):
name = "adilisik"
allowed_domains = ['adl.com.tr']
start_urls = ['http://adl.com.tr']
urls = set()
def __init__(self, retailer='', *args, **kwargs):
super(AdilisikSpider, self).__init__(*args, **kwargs)
def parse(self, response):
.....
.....
但是我无法使这段代码有效。
此行破坏了我的代码。
from crawler.db.base import Base
我收到了这个错误:
from crawler.db.base import Base
ImportError: No module named 'crawler.db'
Could not load spiders from module 'crawler.spiders'. Check SPIDER_MODULES setting
我做错了什么?
修改1 :
在Moinuddin Quadri's suggestion之后,我在抓取工具目录中创建了 init .py并重命名了抓取工具目录。但现在我收到了以下错误
ImportError: No module named 'crawler.settings'
答案 0 :(得分:1)
__init__.py
。添加一个空的__init.__.py
,然后您就可以导入crawler.db
模块。
另外,请注意您有两个目录crawler
(另外一个目录是您的项目)。重命名其中一个目录,否则您可能会面临更多与导入相关的错误。