#python #scrapy #web-crawler
#питон #scrapy #веб-сканер
Вопрос:
Я пытаюсь использовать scrapy для обхода страниц «категории» на веб-сайте. итак, я продолжаю свой путь и получаю количество страниц. и когда я пытаюсь использовать response.переход (ссылка, обратный вызов) работает только один раз, и ответ.ссылка внутри обратного вызова не содержит номера страницы моего кода:
for category_page in self.category_pages:
link = category_page['catLink']
if(link[-1]=="/"):
link= link[:-1]
else:
pass
total_pages = category_page['numPages']
i = 1
while i <= total_pages:
next_url = link f"/#{str(i)}/"
print(next_url)
yield response.follow(next_url, callback=self.parse_catPage)
i = 1
пытался игнорировать robots.txt но безуспешно,
это «работает», когда я удаляю # из ссылки, чтобы
Комментарии:
1. Идентификатор фрагмента (часть после
#
) даже не отправляется на сервер и никак не влияет на то, что извлекает ваш запрос. Он используется для автоматической прокрутки до якоря с тем же именем на странице и доступен Javascript на странице, чтобы делать все, что он хочет (возможно, загруженная страница — это просто скелет, и Javascript использует идентификатор фрагмента для динамической загрузки указанного номера страницы).
Ответ №1:
«#», вероятно, просто якорь, как уже сказал мой предшественник. Используйте сетевые инструменты для поиска loadresult и получения форм запроса в ur script. Моя ставка — это вызовы ajax, но я не могу сказать больше без целевого URL.