【问题标题】:Python: Selenium Pagination only saves page 1 to list, but not page 2, 3, etcPython:Selenium Pagination 仅将第 1 页保存到列表中,但不保存第 2、3 页等
【发布时间】:2021-04-04 05:48:03
【问题描述】:

selenium 代码在每个页面中正确运行和分页(在 selenium 弹出窗口中,您可以看到它从第 1-356 页开始)。

但是“driver.page_source”只保存第一页或前几页的表格。知道为什么只有前几页被附加到列表而不是 1-356 吗?非常感谢!

更新:如果我将 selenium 弹出窗口保持为活动窗口,它似乎可以工作,但是如果我想一次运行多个 selenium 窗口,有没有办法解决这个问题?

import pandas as pd
from selenium import webdriver
driver = webdriver.Chrome()

url = 'https://www.assessedvalues2.com/SearchPage.aspx?jurcode=36'

page = driver.get(url)

time.sleep(3)

driver.find_element_by_xpath('//*[@id="ctl00_MainContent_BtnSearch"]').click()

time.sleep(2)

df_master = []

for i in range(1,357):
    driver.find_element_by_xpath('//*[@id="ctl00_MainContent_TxtPage"]').clear()
    driver.find_element_by_xpath('//*[@id="ctl00_MainContent_TxtPage"]').send_keys(str(i), Keys.ENTER)
    time.sleep(3)
    df = pd.read_html(driver.page_source)
    df = pd.concat(df)
    df_master.append(df)
    time.sleep(2)

    
df_master = pd.concat(df_master)
Full_Table_df = pd.DataFrame(df_master)
display(Full_Table_df)

【问题讨论】:

    标签: python python-3.x selenium selenium-webdriver pagination


    【解决方案1】:

    selenium 在发送键和浏览器窗口不在前台时有点乱。

    您可以尝试在 send_keys 之前发送点击

    elem = driver.find_element_by_xpath('//*[@id="ctl00_MainContent_TxtPage"]')
    elem.clear()
    elem.click()
    elem.send_keys(str(i), Keys.ENTER)
    

    但既然你想在后台运行,你应该使用无头驱动程序

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    chrome_options.headless = True
    driver = webdriver.Chrome(options=chrome_options)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2014-02-24
      • 1970-01-01
      • 2018-08-23
      相关资源
      最近更新 更多