如何解决Scrapy / Django-PyCharm调试器-无法导入模型
我有一个蜘蛛抓取基于Django模型Domain的网站。我为scrapy创建了一个自定义配置,以便能够使用PyCharm调试器。
问题是,当我使用调试器运行Spider时,会引发此错误:
from core.models import Domain
ModuleNotFoundError: No module named 'core.models'
但是当我这样运行时:
scrapy crawl domain_spider
它正常工作。
import os
import sys
from datetime import timedelta
import django
import scrapy
from scrapy.linkextractors.lxmlhtml import LxmlLinkExtractor
from scrapy.spiders import Spider
DJANGO_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
sys.path.append(DJANGO_DIR)
print(DJANGO_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mspiders.settings'
django.setup()
from core.models import Domain
from django.db.models import Q
from django.utils.timezone import now
class DomainSpider(Spider):
name = 'domain_spider'
custom_settings = {
'USER_AGENT': "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/27.0.1453.93 Safari/537.36",'LOG_FILE': 'logs/domain_spider.log','CONCURRENT_REQUESTS': 100,'DOWNLOAD_TIMEOUT': 20,'DNS_TIMEOUT': 20,'RETRY_TIMES': 2,'LOG_LEVEL': 'INFO',}
def start_requests(self):
sys.path.append(DJANGO_DIR)
行将显示以下内容:
'/home/milano/PycharmProjects/spiders/mspiders'
这是正确的Django项目目录
这是一个配置:
这很奇怪,因为我经常使用这种配置而没有任何问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。