#scrapy
#scrapy
Вопрос:
Для Scrapy мы могли бы получить response.url, response.request.url, но как мы узнаем, response.url, response.request.url извлекается из какого родительского url?
Спасибо, Кен
Комментарии:
1. Я использую
response.request.headers.get('referer')
для получения родительского URL-адреса. Но это не всегда работает, особенно для перенаправленных URL-адресов
Ответ №1:
Вы можете использовать Request.meta для отслеживания такой информации.
Когда вы удовлетворите свой запрос, включите response.url
в мета-:
yield response.follow(link, …, meta={'source_url': response.url})
Затем прочтите это в вашем методе синтаксического анализа:
source_url = response.meta['source_url']
Это самый простой способ сделать это, и вы можете использовать этот метод для отслеживания исходных URL-адресов даже в разных методах синтаксического анализа, если хотите.
В противном случае вы можете захотеть воспользоваться redirect_urls
мета-ключом, который отслеживает переходы к перенаправлению.