码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Selenium:Web自动化框架


    Selenium自动化入门

      • 1、Selenium概述
      • 2、Selenium环境搭建
      • 3、Selenium基本操作
      • 4、网页元素定位
      • 5、操作Cookie
      • 6、标签页管理



    1、Selenium概述


    Selenium(Web Browser Automation)的初衷是Web应用自动化测试。Selenium还广泛应用于爬虫,爬虫需要让浏览器自动运行网址来获取我们需要的内容

    Selenium不是单个软件,它是由一系列的工具组成

    Selenium库支持多种编程语言:Python、Java等,支持多种浏览器:Chrome、Firefox、Edge等,支持跨平台:Windows、MacOS、Linux

    Selenium的动作操作可以使用Selenium调用WebDriver执行与用户交互相关的动作,例如单击、右键单击、悬停、拖放等。通过模拟用户在网页上的行为,可以实现更真实的测试和自动化操作

    动作操作在爬虫领域具有重要的作用和意义。虽然传统的爬虫主要关注数据的抓取和解析,但随着网站的逐渐发展和演变,越来越多的网页采用了动态加载、异步加载或基于JavaScript的交互式元素

    在这种情况下,传统的静态页面爬取方法可能无法获取到完整的数据或准确的页面状态。而动作操作则可以模拟人类用户与网页的交互行为,使爬虫能够处理这些动态页面并正确获取所需的数据

    Selenium优势在于:

    • 处理动态加载:许多网页使用AJAX或其他技术进行动态加载内容。通过执行动作操作,爬虫可以模拟用户的滚动、点击等操作,触发页面的动态加载,获取完整的数据
    • 解析交互式元素:某些网页包含需要用户交互才能显示的元素,例如展开更多评论、加载更多图片等。通过模拟用户操作,爬虫可以触发这些元素的显示,并正确解析其中的数据
    • 模拟登录和表单提交:一些网站要求用户登录或填写表单后才能访问所需的数据。通过动作操作,爬虫可以模拟登录操作或填写表单,以获取需要的数据
    • 处理验证码:许多网站为了防止机器人爬取数据而使用验证码。通过动作操作,爬虫可以模拟用户输入验证码或使用其他识别方式来处理验证码验证过程

    Selenium的动作操作在爬虫中的应用可以提高数据的完整性和准确性,使爬虫能够更好地应对动态页面和交互式元素的挑战,从而实现更全面、高效的数据采集任务

    Selenium中文文档:https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/

    2、Selenium环境搭建


    1)下载浏览器驱动(WebDriver)

    WebDriver主要用于驱动浏览器运行

    Chrome浏览器的WebDriver(chromedriver.exe)下载安装配置:

    • 查看Chrome浏览器版本

      设置 -> 关于Chrome -> 版本

    • 下载对应版本对应操作系统的驱动(前3位版本号一致即可)

      淘宝镜像(114及之前版本):http://npm.taobao.org/mirrors/chromedriver/

      官方镜像(指定版本下载):https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/117.0.5938.62/win64/chromedriver-win64.zip

    • 安装目录

      解压即可。将解压的chromedriver.exe复制放在Chrome浏览器安装目录下的Application目录中或Python解释器的安装目录下(与python.exe同级)

    • 配置系统环境变量Path

      添加chromedriver.exe绝对路径,如果放在Python相关目录下该步骤可省略

    # Application目录(右键图标打开文件所在位置)
    C:\Users\cc\AppData\Local\Google\Chrome\Application
    # Python解释器所在目录(或Scripts下)
    E:\Program Files\Python\Python310
    E:\Program Files\Python\Python310\Scripts
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 验证:Win+R,打开cmd命令行,使用如下命令验证:
    chromedriver.exe
    
    • 1

    2)安装:

    pip install selenium
    
    • 1

    3、Selenium基本操作


    使用到的模块:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver import ActionChains, Keys  # 动作类
    from selenium.webdriver.support.wait import WebDriverWait  # 等待类
    from selenium.webdriver.support import expected_conditions as EC  # 等待条件类
    from selenium.webdriver.support.select import Select  # Select类
    import time
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.1、页面等待加载

    # 强制等待10s
    time.sleep(10)
    
    # 显式等待(Explicit Wait):等待特定条件达成
    # 最长等待时间10s,EC.presence_of_element_located()是一个预定义的条件,用于等待元素出现在页面中
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, 'expr'))
    )
    
    # 隐式等待(Implicit Wait):等待一定时间段
    # 最长等待时间10s,如果元素未找到将继续等待直到最长时间
    driver.implicitly_wait(10)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    java计算机毕业设计酒店预约入住系统源码+mysql数据库+系统+lw文档+部署
    linux安装Ftp
    FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
    IDEA调用接口超时,但Postman可成功调用接口
    ACMG 2.0 支持零信任网络模式
    机器学习策略篇:详解如何使用来自不同分布的数据,进行训练和测试(Training and testing on different distributions)
    【C/C++内功心法】剖析编译链接的过程,探究源文件是如何一步步变成可执行程序,提升C/C++内功
    openGauss学习笔记-104 openGauss 数据库管理-管理数据库安全-客户端接入之SSL证书管理-证书替换
    redis设置密码
    Abp.Zero 手机号免密登录验证与号码绑定功能的实现(二):改造Abp默认实现
  • 原文地址:https://blog.csdn.net/weixin_55629186/article/details/133871422
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号