我有一个 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'
最佳答案
您的 crawler 目录中缺少
__init__.py
。添加一个空的__init.__.py
,然后您将能够导入crawler.db
模块。
另外,请注意,您有两个目录作为 crawler
(还有一个是您的项目)。重命名目录之一,否则您可能会遇到更多与导入相关的错误。
关于Python - 无法导入本地库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41914805/