Я использую Scrapy, в частности класс Scrapy CrawlSpider
, для извлечения веб-ссылок, содержащих определенные ключевые слова. У меня есть довольно длинный список start_urls
, который получает свои записи из базы данных SQLite, которая подключена к проекту Django. Я хочу сохранить очищенные веб-ссылки в этой базе данных.
У меня есть две модели Django, одна для начальных URL-адресов, таких как http://example.com
, и одна для извлеченных веб-ссылок, таких как http://example.com/website1.
, http://example.com/website2
и т. д. Все извлеченные веб-ссылки являются дочерними сайтами одного из начальных URL-адресов в списке start_urls
.
Модель веб-ссылок имеет отношение «многие к одному» к модели начальных URL-адресов, т.е.модель веб-ссылок имеет внешний ключ для модели начальных URL-адресов. Чтобы правильно сохранить мои очищенные веб-ссылки в базе данных, мне нужно сообщить методу CrawlSpider
parse_item()
, к какому начальному URL принадлежит очищенная веб-ссылка. Как я могу это сделать? Класс Scrapy DjangoItem
не помогает в этом отношении, так как мне все еще нужно явно определить используемый начальный URL-адрес.
Другими словами, как я могу передать текущий начальный URL-адрес методу parse_item()
, чтобы я мог сохранить его вместе с соответствующими очищенными веб-ссылками на базу данных? Любые идеи? Заранее спасибо!