提问人:heruscod 提问时间:11/17/2023 更新时间:11/17/2023 访问量:25
如何向下滚动网页上的 Power BI 表,以便使用 Python + Selenium 抓取其内容?
How can I scroll down a Power BI table on a webpage in order to scrape its content using Python + Selenium?
问:
我正在尝试使用 Selenium 库抓取 Power BI 仪表板网站的表。我已经取得了一些进展,例如单击页面过滤器并抓取初始数据。但是,为了完全完成我的任务,我需要抓取所有表格内容,为此,我应该向下滚动表格(在抓取数据时),直到所有数据都完全加载。滚动部分是我卡住的地方。我尝试过一些不同的东西,但没有一个奏效。
这是我到目前为止的代码:
driver = webdriver.Chrome()
driver.get("https://app.powerbi.com/view?r=eyJrIjoiYTgyZTI0NjgtNGFhYi00MWI3LTg4YTUtNWY2MTAyMjUxZjI2IiwidCI6ImI4YzI1OTMyLTVlNzYtNGIyYi05YzUzLWQ0MTc0NWU5YzkyZCJ9")
table_xpath = r"//*[@id='pvExplorationHost']/div/div/exploration/div/explore-canvas/div/div[2]/div/div[2]/div[2]/visual-container-repeat/visual-container[5]/transform/div/div[3]/div/div/visual-modern"
filter = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[@id='pvExplorationHost']/div/div/exploration/div/explore-canvas/div/div[2]/div/div[2]/div[2]/visual-container-repeat/visual-container[1]/transform/div/div[3]/div/div/visual-modern/div/div/div/div[1]/div/div[1]/div/div/div[3]/div[2]")))
sleep(3)
filter.click()
table_element = driver.find_element(By.XPATH, table_xpath)
driver.execute_script("arguments[0].scrollBy(0, 500);", table_element)
sleep(10)
以及我试图刮掉它的部分(它有效!
list1 = []
for j in range (1,30):
data_teste = [i.text for i in driver.find_elements(By.XPATH, table_xpath + "/div/div/div[2]/div[1]/div[2]/div/div[" + str(j) +"]")]
list1.append(data_teste)
print(list1)
但是滚动部分发生任何事情,我不确定我做错了什么。 谁能解释一下我如何做到这一点?
答: 暂无答案
评论