如何在Python Selenium中不使用current_url实现多页导航循环?
解决方案:避免
driver.current_url问题,实现多页导航 问题根源
driver.get()无返回值,url_test = driver.get(...)属于冗余代码,完全没用。- 依赖
driver.current_url拼接分页参数易出问题:页面未完全加载时获取URL会拿到错误值;若原URL已有查询参数,直接加?page={}会导致参数格式错误(比如变成xxx?a=1?page=2)。 - 跳转分页后未等待页面加载完成就获取元素,容易触发找不到元素的错误。
修复后的代码
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.webdriver.chrome.service import Service from time import sleep # 初始化驱动 driver_service = Service(executable_path=r"C:\Program Files (x86)\chromedriver.exe") driver = webdriver.Chrome(service=driver_service) driver.maximize_window() wait = WebDriverWait(driver, 10) # 延长等待时间适配页面加载速度 # 手动定义分页模板,彻底规避current_url的不确定性 base_url = "https://www.seek.com.au/data-jobs-in-information-communication-technology/in-All-Perth-WA?page={}" # 遍历第1到第4页(range(1,5)对应1、2、3、4页) for page in range(1, 5): # 加载当前分页 driver.get(base_url.format(page)) # 等待页面核心元素加载完成,确保页面就绪 wait.until(EC.presence_of_element_located((By.XPATH, "//a[@data-automation='jobTitle']"))) # 获取当前页所有job链接 link_job = [x.get_attribute('href') for x in driver.find_elements(By.XPATH, "//a[@data-automation='jobTitle']")] # 遍历每个job链接 for job in link_job: driver.get(job) try: # 等待申请按钮可点击 quick_apply = wait.until(EC.element_to_be_clickable((By.XPATH, "//a[@data-automation='job-detail-apply' and @target='_self']"))) quick_apply.click() except Exception as e: print(f"无法找到或点击申请按钮: {job}") # 可选:打印具体错误信息便于调试 # print(f"错误详情: {str(e)}") finally: sleep(2) # 留短暂时间处理页面跳转,可根据实际情况调整 driver.quit() # 程序结束后释放驱动资源
关键修改点
- 移除
driver.current_url依赖:手动构造分页URL模板,彻底避免页面加载状态带来的不确定性。 - 强化页面等待逻辑:每次加载分页后,等待job标题元素出现,确保页面完全就绪再获取数据。
- 修正循环范围:原
range(2,5)会跳过第一页,改成range(1,5)覆盖前4页。 - 优化异常处理:捕获具体异常并输出清晰提示,用
finally确保sleep执行,避免逻辑混乱。 - 添加驱动关闭:程序结束后调用
driver.quit()释放系统资源。
额外建议
- 尽量用Selenium的显式等待(
WebDriverWait)替代sleep(),让代码更稳定、执行效率更高。 - 若网站有反爬机制,可添加随机等待时间、自定义User-Agent等策略,避免被限制访问。
内容的提问来源于stack exchange,提问作者jhgjhgkk
相关产品推荐
相关产品推荐

