Я очень новичок в Python и Django. В настоящее время я изучаю использование Scrapy для очистки сайтов и сохранения данных в базе данных Django. Моя цель - запустить паука на основе домена, заданного пользователем.
Я написал паук, который извлекает нужные мне данные и сохраняет их правильно в json файле при вызове
scrapy crawl spider -o items.json -t json
Как описано в уроке .
Теперь моя цель - заставить паук успешно сохранить данные в базе данных Django, а затем работать над тем, чтобы запустить паук на основе пользовательского ввода.
Я знаю, что по этой теме существуют разные должности, такие как: ссылка 1 ссылка 2 ссылка 3
Но, потратив более 8 часов на попытку заставить это работать, я предполагаю, что я не единственный, кто все еще сталкивается с проблемами с этим. Поэтому я попытаюсь собрать все знания, которые я получил до сих пор в этом посте, а также, надеюсь, опубликовать рабочее решение на более позднем этапе. Из-за этого этот пост довольно длинный.
Мне кажется, что есть два разных решения для сохранения данных в базу данных Django от Scrapy. Один из них - использовать DjangoItem, другой - импортировать модели напрямую (как сделано здесь).
Я не совсем понимаю преимущества и недостатки этих двух, но похоже, что разница просто в том, что использование DjangoItem просто более удобно и короче.
Что я сделал:
Я добавил:
def setup_django_env(path):
import imp, os
from django.core.management import setup_environ
f, filename, desc = imp.find_module('settings', [path])
project = imp.load_module('settings', f, filename, desc)
setup_environ(project)
setup_django_env('/Users/Anders/DjangoTraining/wsgi/')
Ошибка, которую я получаю:
ImportError: No module named settings
Я думаю, что я неправильно определяю путь к моему проекту Django?
Я также пробовал следующее:
setup_django_env('../../')
Как правильно определить путь к моему проекту Django? (если это проблема)