@s1zen

Как спарсить данные если нет нормальной пагинации?

Сам сайт: https://series.naver.com/comic/recentList.series
Если выйти за пределы пагинации возращает на последнию страницу

До чего додумался:
page_iteration = False
    books_dict = []
    total_page = 0
    while page_iteration != True:
        total_page += 1
        async with aiohttp.ClientSession(headers=headers) as session:
            async with session.get(f"https://series.naver.com/comic/recentList.series?page={total_page}") as response:
                html = await response.text()
        
        soup = BeautifulSoup(html, "lxml")
        books_block = soup.find_all("ul", "lst_thum")
        for block in books_block:
            books = block.find_all("li")
            for book in books:
                book_url = "https://series.naver.com" + book.find("a", "NPI=a:content").get("href")
                books_dict.append({"book_url": book_url})
        with open("result.json", "a", encoding="utf-8") as file:
            json.dump(books_dict, file, indent=4, ensure_ascii=False)
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@alexbprofit
Junior SE
Это набросок, можно изменить под себя:
import requests
url = "https://series.naver.com/comic/recentList.series?page="
pagination_last_index = 1
while True:
  r1 = requests.get(url + str(pagination_last_index))
  r2 = requests.get(url + str(pagination_last_index + 1))

  if r1.text == r2.text:
    print(pagination_last_index)
    break

  pagination_last_index += 1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@deliro
Если последняя страница содержит полностью идентичные ссылки, что и предыдущая — предыдущая была последней
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы