Как получить доступ к определенному start_url в Scrapy CrawlSpider?

Я использую 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-адресов. Чтобы правильно сохранить мои очищенные веб-ссылки в базе данных, мне нужно сообщить методу CrawlSpiderparse_item(), к какому начальному URL принадлежит очищенная веб-ссылка. Как я могу это сделать? Класс Scrapy DjangoItemне помогает в этом отношении, так как мне все еще нужно явно определить используемый начальный URL-адрес.

Другими словами, как я могу передать текущий начальный URL-адрес методу parse_item(), чтобы я мог сохранить его вместе с соответствующими очищенными веб-ссылками на базу данных? Любые идеи? Заранее спасибо!

6
задан pemistahl 15 May 2012 в 10:22
поделиться