Переход между страничками таблицы

Рейтинг: 0Ответов: 1Опубликовано: 09.05.2023

Необходимо достать данные с сайта. Табличку можно переключать кнопкой, всего 6000+ страниц

введите сюда описание изображения

import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import time

url = 'https://akasha.cv/leaderboards/1000004600/'

o = Options()
o.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=o)

while True:
    driver.get(url)
    time.sleep(7)
    generated_html = driver.page_source
    soup = BeautifulSoup(generated_html, 'html.parser')

    tables = soup.find_all('table')
    dfs = pd.read_html(str(tables))
    print(dfs[-1])

    try:
        button = soup.find('button',{'class':'relative button-wrapper'})
        button.click()
        url = driver.current_url
    except:
        break

Не могу понять как достать кнопку и нажать на нее

введите сюда описание изображения

Ответы

▲ 0

Метод click() не доступен для парсера BeautifulSoup. Вам следует делать это через selenium webdriver.

driver.find_element(By.CLASS_NAME, "relative button-wrapper").click()

Или:

button = driver.find_element(By.CLASS_NAME, "relative button-wrapper")
button.click()

Если несколько элементов имеют этот же класс, а Вам нужен конкретный - используйте другой метод выбора. Например By.XPATH