URL-адрес запроса Scrapy, с какого URL-адреса получен ответ

#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 мета-ключом, который отслеживает переходы к перенаправлению.