做篮球视频网站,哪些网上订餐的网站做的好,杭州网站制作机构,app开发框架目录
项目背景与目标Selenium 环境配置分页处理的基本思路简化后的代码示例总结
正文
1. 项目背景与目标
在进行 Web 自动化测试或数据抓取时#xff0c;处理分页是一个常见的需求。通过 Selenium#xff0c;我们可以自动化浏览多个分页并提取每页上的信息。本文将介绍如…目录
项目背景与目标Selenium 环境配置分页处理的基本思路简化后的代码示例总结
正文
1. 项目背景与目标
在进行 Web 自动化测试或数据抓取时处理分页是一个常见的需求。通过 Selenium我们可以自动化浏览多个分页并提取每页上的信息。本文将介绍如何使用 Selenium 实现这一目标并提供简化和优化后的代码示例。
2. Selenium 环境配置
在开始之前确保您已经安装了 Selenium 库和相应的 WebDriver如 ChromeDriver。以下是基本的环境配置代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import configdef setup_driver():# 加载配置selenium_config {chrome_driver_path:chrome_driver_path,user_data_dir:user_data_dir}# 设置 ChromeDriver 的服务service Service(selenium_config.chrome_driver_path)# 配置 ChromeDriver 的选项options Options()options.add_argument(f--user-data-dir{selenium_config[user_data_dir]})options.add_argument(--disable-blink-featuresAutomationControlled)options.add_argument(--user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36)# 初始化 WebDriverreturn webdriver.Chrome(serviceservice, optionsoptions)3. 分页处理的基本思路
我们需要遍历每一页上的文件链接点击并提取信息。对于每一个文件链接我们将在新标签页中打开它获取所需的信息后再关闭标签页。最后我们会处理下一页的按钮直到没有下一页为止。
4. 代码示例
以下是简化和优化后的代码示例
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 ECdef setup_driver():import configfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Optionsselenium_config {chrome_driver_path:chrome_driver_path,user_data_dir:user_data_dir}service Service(selenium_config.chrome_driver_path)options Options()options.add_argument(f--user-data-dir{selenium_config[user_data_dir]})options.add_argument(--disable-blink-featuresAutomationControlled)options.add_argument(--user-agentMozilla/5.0)return webdriver.Chrome(serviceservice, optionsoptions)def click_all_links_on_page(driver):
# 执行操作passdef paginate_and_scrape():driver setup_driver()try:driver.get(https://XXXX/xXXX)# 等待页面加载完成WebDriverWait(driver, 60).until(lambda d: d.execute_script(return document.readyState) complete)print(fThis page title is : {driver.title})while True:click_all_links_on_page(driver)try:# 获取下一页按钮元素next_button driver.find_element(By.XPATH, //button[classbtn-next and not(disabled)])next_button.click()# 等待页面加载完成WebDriverWait(driver, 20).until(lambda d: d.execute_script(return document.readyState) complete)except Exception as e:print(fError occurred or no more next button: {e})breakfinally:driver.quit()if __name__ __main__:paginate_and_scrape()5. 总结
本文介绍了如何使用 Selenium 实现自动化分页处理与信息提取。通过合理的代码简化和优化可以提高脚本的可读性和执行效率。希望这篇博文能帮助您在实际项目中实现高效的网页信息提取。如果您有任何问题或建议欢迎在评论区留言讨论。