#python #scrapy
#python #scrapy
Вопрос:
Ниже приведен код, который я запускаю в терминале PyCharm:
scrapy shell "https://www.puppis.com.ar/perros/alimentos/alimentos-secos#2"
Вывод:
Available Scrapy objects:
[s] scrapy scrapy module (contains scrapy.Request, scrapy.Selector, etc)
[s] crawler <scrapy.crawler.Crawler object at 0x000001F4B3F77AF0>
[s] item {}
[s] request <GET https://www.puppis.com.ar/perros/alimentos/alimentos-secos#2>
[s] response <200 https://www.puppis.com.ar/perros/alimentos/alimentos-secos>
[s] settings <scrapy.settings.Settings object at 0x000001F4B3F77160>
[s] spider <DefaultSpider 'default' at 0x1f4b4442d30>
[s] Useful shortcuts:
[s] fetch(url[, redirect=True]) Fetch URL and update local objects (by default, redirects are followed)
[s] fetch(req) Fetch a scrapy.Request and update local objects
[s] shelp() Shell help (print this help)
[s] view(response) View response in a browser
Почему выходные данные ответа отличаются от URL-адреса запроса?
Насколько я понимаю, страница с «# 2» перенаправляется на главную страницу — без «# 2» в конце. Есть ли какой-либо способ избежать этого?
Комментарии:
1. # 2 просто автоматически отправляет браузер на этот идентификатор, это не изменяет тело ответа (HTML будет одинаковым с # или без #)
2. # 2 в данном случае относится ко второй странице веб-сайта, который я пытаюсь очистить, тогда как URL без # 2 является первой страницей. Другими словами — я пытался очистить вторую страницу, но был перенаправлен на главную страницу, которая имеет совершенно другие результаты. Надеюсь, это имеет смысл.
3. вы должны проверить сетевые запросы XHR, должен быть запрос, который выполняется для получения данных для следующей страницы