SeleniumPython-Do操作,单击下一页,重复直到最后一页



我正试图在网页上执行一个操作,单击下一个按钮,然后重复该操作,直到到达最后一页。我试过在StackOverflow上使用类似问题的答案,但我无法让它们发挥作用。现在唯一发生的事情就是打开网页。我没有任何代码来处理网页。我的代码在下面。谢谢你的帮助!来自selenium导入webdriver从webdriver_manager.chrome导入ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://obamawhitehouse.archives.gov/briefing-room/speeches-and-remarks')
while True:
next_page_btn = driver.find_elements_by_xpath("//li[@class = 'pagination-next']/a")
if len(next_page_btn) < 1:
print("No more pages left")
break
else:
<MY CODE>
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, 'Next'))).click() 

请检查以下解决方案以获得参考:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as Wait
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException

driver = webdriver.Chrome(executable_path=r"chromedriver.exe")
driver.get('https://obamawhitehouse.archives.gov/briefing-room/speeches-and-remarks')
wait = WebDriverWait(driver,30)
flag = True
while flag:
try:
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//a[contains(text(),'Next')]")))
if (element != 0):
element.click()
except TimeoutException as ex:
print "It is all good, no element there"

我注意到我的网站页面被描绘成这样:

https://obamawhitehouse.archives.gov/briefing-room/speeches-and-remarks?term_node_tid_depth=31&page=1

转到page=473。因此,我能够将代码封装在while循环中,添加一个计数器,并执行page={}.format

我查看了一下网站,发现下一个分页类似乎不存在。相反,您要查找的"下一步"按钮具有类寻呼机nextlast

我建议然后改变这个:

next_page_btn = driver.find_elements_by_xpath("*//li[@class = 'pagination-next']/a")

为此:

next_page_btn = driver.find_elements_by_xpath("*//li[@class = 'pager-next last']/a")

如果这有帮助,请告诉我!

最新更新