Проблема обхода ссылки, содержащей: ‘#’

#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.