@robocop45

Как прокрутить таблицу на странице, которая сама не скроллится?

Всем привет, мне нужно спарсить таблицу с Airtable. Все данные прогружаются динамически и было бы не проблема зайти на сайт с помощью selenuim, прокрутить страницу вниз с помощью команды window.scrollBy(0, 100); и готово. Но проблема в том, что сама страница не скроллится (попробуйте выполнить код выше и ничего не произойдет), а скроллится именно таблица. Как решить данную проблему?

import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait


def get_html(url):
    service = Service(executable_path='C:\\airtable_parse\\chromedriver-win64\\chromedriver.exe')
    options = webdriver.ChromeOptions()
    driver = webdriver.Chrome(service=service, options=options)
    driver.maximize_window()
    WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//html')))
    try:
        driver.get(url=url)
        time.sleep(10)
        
        while True:
            # After your page is loaded
            page_hight = driver.get_window_size()['height']  # Get page height
            scroll_bar = driver.find_element(By.XPATH, "//div[contains(@class,'antiscroll-scrollbar-vertical')]")
            ActionChains(driver).drag_and_drop_by_offset(scroll_bar, 0, page_hight - 160).click().perform()
        #driver.execute_script('window.scrollBy(0, 100);')
    except Exception as e:
        print(e)
    finally:
        driver.close()
        driver.quit()


def main():
    get_html("https://airtable.com/embed/appImi8PX0i84XFwj/shr1PWZhR25O6DJxK/tblJG95RoC1WrRppF/viwVAi9l6dxxBtihM?backgroundColor=green&viewControls=on")


if __name__ == "__main__":
    main()


p.s. здесь я попробовал решение с stacloverflow, но не помогло
https://stackoverflow.com/questions/63695690/pytho...

Заранее всем большое спасибо
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Вам необходимо скролить не страницу, а элемент. Вот мой пример, как скролить определенный элемент: Как проскролить в определенной облачи экран в selenium?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы