楼主的需求似乎是点击百度贴吧一下,输出当前页面的尾数
先给楼主代码(代码以足球吧为例):
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import StaleElementReferenceException
driver = webdriver.Chrome()
driver.get("https://tieba.baidu.com/f?ie=utf-8&kw=%E8%B6%B3%E7%90%83&fr=search")
driver.maximize_window()
wait = WebDriverWait(driver, 10)
for i in range(1, 10):
print("当前的尾页数:", driver.find_element(By.XPATH,"//*[@id='frs_list_pager']/a[last()-2]").text)
try:
next_page_link = wait.until(EC.visibility_of_element_located((By.LINK_TEXT, "下一页>")))
next_page_link.click()
except StaleElementReferenceException:
next_page_link = wait.until(EC.visibility_of_element_located((By.LINK_TEXT, "下一页>")))
next_page_link.click()
再解释一下这段代码的业务逻辑:
使用 Selenium 打开百度贴吧的足球吧页面。
最大化浏览器窗口。
创建一个等待对象,设置最长等待时间为10秒。
使用循环,从第1页到第9页,执行以下操作:
打印当前页的倒数第三个元素(即尾页数)的文本内容。
使用等待对象,等待 "下一页>" 链接元素可见。
点击 "下一页>" 链接元素,进入下一页。
如果在点击之前页面发生了变化(StaleElementReferenceException异常),重新等待并点击 "下一页>" 链接元素。
总体来说,这段代码的目的是模拟用户在百度贴吧足球吧页面翻页,并打印每页的尾页数。通过使用等待操作,确保在页面加载完成后再进行下一步操作。
请注意,该代码只展示了基本的翻页和获取尾页数的逻辑,实际业务逻辑可能更加复杂,需要根据具体需求进行扩展和优化。