首页 > 解决方案 > Scrapy/Django - PyCharm 调试器 - 无法导入模型

问题描述

我有一个基于 Django 模型域抓取网站的蜘蛛。我为 scrapy 创建了一个自定义配置,以便能够使用 PyCharm 调试器。

问题是当我使用调试器运行蜘蛛时,它会引发这个错误:

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 项目目录

这是一个配置:

在此处输入图像描述

这很奇怪,因为我经常使用这样的配置而没有任何问题。

标签: pythondjangoscrapypycharm

解决方案


推荐阅读