python+selenium 分页查询时,把页码按位数拆分后执行了,怎么解决?

应该执行的次数是1516次;但是实际上只执行了4次。

第1个回答  2023-07-26

楼主的需求似乎是点击百度贴吧一下,输出当前页面的尾数

先给楼主代码(代码以足球吧为例):

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异常),重新等待并点击 "下一页>" 链接元素。

    总体来说,这段代码的目的是模拟用户在百度贴吧足球吧页面翻页,并打印每页的尾页数。通过使用等待操作,确保在页面加载完成后再进行下一步操作。

    请注意,该代码只展示了基本的翻页和获取尾页数的逻辑,实际业务逻辑可能更加复杂,需要根据具体需求进行扩展和优化。

第2个回答  2023-07-31
单纯从你的代码中推测,很可能大部分代码的逻辑和你想要的一样。差异点大概是 last_page_no 是一个字符串,所以使用 for 轮询将得到字符的拆分输出。我想你想要的部分应该是:
last_page_no = int(last_page_no)
for page_no in range(1, last_page_no + 1)
大概是这种效果吧。
第3个回答  2023-07-27
能把文本贴出来吗,我来调试一下,又不想打字
相似回答
大家正在搜