• 【python模块】Selenium


    声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。


    Selenium

    Selenium库是一个强大的Web自动化工具,允许开发者通过编写脚本来控制浏览器,实现网页的自动测试和数据抓取。它提供了WebDriver接口,支持多种浏览器,如Chrome、Firefox等。使用Selenium,可以模拟用户行为,如点击、输入、导航等,适用于自动化测试、爬虫开发等多种场景。

    功能介绍

    Selenium库提供了丰富的方法来模拟用户与浏览器的交互。以下是一些常用的Selenium WebDriver方法的介绍:

    1. 初始化WebDriver:

      • webdriver.BrowserName(): 创建一个特定浏览器的WebDriver实例。
    2. 导航:

      • get(url): 加载指定的URL。
      • back(): 后退到浏览器历史记录中的上一个页面。
      • forward(): 前进到浏览器历史记录中的下一个页面。
      • refresh(): 刷新当前页面。
    3. 元素定位:

      • find_element(By.定位方式, 值): 查找页面上第一个匹配的元素。
      • find_elements(By.定位方式, 值): 查找页面上所有匹配的元素。
    4. 元素交互:

      • click(): 点击元素。
      • clear(): 清除输入字段的内容。
      • send_keys(*value): 向输入字段发送键序列。
      • submit(): 提交表单。
    5. 获取元素信息:

      • get_attribute(name): 获取元素的属性值。
      • text: 获取元素的文本内容。
      • tag_name: 获取元素的标签名。
      • is_displayed(): 检查元素是否可见。
      • is_enabled(): 检查元素是否启用。
    6. 等待:

      • implicitly_wait(seconds): 设置隐式等待时间,用于等待页面元素加载。
      • WebDriverWait(driver, timeout).until(condition): 显式等待,直到某个条件成立。
    7. 窗口和框架:

      • switch_to.window(name): 切换到指定名称的窗口。
      • switch_to.frame(element): 切换到指定的iframe。
    8. 执行JavaScript:

      • execute_script(script): 在当前页面执行JavaScript代码。
    9. 浏览器操作:

      • close(): 关闭当前窗口。
      • quit(): 关闭所有窗口并结束WebDriver会话。
    10. 截图:

      • get_screenshot_as_file(filename): 将当前页面截图保存为文件。
      • get_screenshot_as_png(): 获取当前页面的截图数据。
    11. Cookies操作:

      • add_cookie(cookie_dict): 添加一个cookie。
      • delete_cookie(name): 删除指定名称的cookie。
      • delete_all_cookies(): 删除所有cookies。
    12. 浏览器设置:

      • set_page_load_timeout(time_to_wait): 设置页面加载超时时间。
      • set_script_timeout(time_to_wait): 设置脚本执行超时时间。

    这些方法覆盖了从浏览器启动、页面导航、元素交互到浏览器关闭的整个流程,为自动化测试和网页自动化提供了强大的支持。

    环境准备

    • 安装Python。
    • 安装Selenium库:pip install selenium
    • 下载对应浏览器的WebDriver。
      查看浏览器版本:edge://version/
      在这里插入图片描述
      如图,我的版本为:126.0.2592.87 (正式版本) (64 位)
      驱动下载地址:https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/
      在这里插入图片描述
      将其解压到python解释器目录并重命名为MicrosoftWebDriver.exe
      输入cmd命令:py -0p
      在这里插入图片描述

    示例代码

    抓取并展示指定网页上的所有链接信息

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Edge()
    
    # 打开目标网页
    driver.get('https://movie.douban.com/top250')
    
    # 获取网页上所有的链接元素
    links = driver.find_elements(By.TAG_NAME, 'a')
    
    # 遍历链接,打印链接的文本和href属性
    for link in links:
        print(f"链接文本: {link.text}")
        print(f"链接地址: {link.get_attribute('href')}\n")
    
    # 关闭浏览器
    driver.quit()
    
    1. 导入了selenium模块的webdriver和By子模块。
    2. 创建了一个Edge浏览器实例。
    3. 通过driver.get方法打开了豆瓣电影Top250的网页。
    4. 使用find_elements方法查找网页上所有的链接元素,并将其存储在links列表中。
    5. 通过遍历links列表,打印出每个链接的文本和href属性。
    6. 通过driver.quit方法关闭了浏览器。

    在这里插入图片描述
    抓取到了全部链接。


    浮萍漂泊本无根,天涯游子君莫问。

  • 相关阅读:
    Java8新特性 Stream流
    Java学习路线图
    Java 集合之 List
    Etcd 学习 安装教程
    [网络工程师]-应用层协议-SNMP
    手把手系列--STM32H750移植FreeRTOS(三)--获取CPU占用
    前端技能树,面试复习第 54 天—— 手写代码:情景题
    【C++STL基础入门】list的运算符重载和关于list的算法
    由浅入深理解latent diffusion/stable diffusion(2):扩散生成模型的工作原理
    微信小程序异常处理(持续记录中)
  • 原文地址:https://blog.csdn.net/LongL_GuYu/article/details/140289802