Python selenium模块的安装和配置教程

2024-01-04

一、selenium的安装以及简单应用

我们以谷歌浏览器的chromedriver为例

1、在Python虚拟环境中安装selenium模块

pip/pip3 install selenium

2、下载版本符合的webdriver

以chrome谷歌浏览器为例

查看谷歌浏览器的版本

鼠标点击右上角的竖排的三个点,然后选择“帮助”,选择“关于 Google Chrome”,进去之后即可查看谷歌浏览器的版本

访问下载chromedriver网站

访问 chromedriver下载地址 ,点击进入不同版本的chromedriver下载页面

点击notes.txt进入版本说明页面

查看chrome和chromedriver匹配的版本

根据操作系统下载正确版本的chromedriver

解压压缩包后获取python代码可以调用的谷歌浏览器的webdriver可执行文件

  • windows为 chromedriver.exe
  • linux和macos为 chromedriver

chromedriver环境的配置

  • windows环境下需要将 chromedriver.exe 所在的目录设置为path环境变量中的路径
  • linux/mac环境下,将 chromedriver 所在的目录设置到系统的PATH环境值中

3、chromedriver环境配置的教程

windows环境下将 chromedriver.exe 所在的目录设置为path环境变量中的路径的过程

鼠标右键点击“Google Chrome” ,然后点击“打开文件所在位置”复制 chrome.exe 所在的文件路径

接着打开“控制面板” 搜索输入 “环境变量” 并搜索,然后点击 “编辑系统环境变量”

二、selenium的简单使用

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的。

Selenium 可以直接调用浏览 器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页 面,获取需要的数据,甚至页面截屏等。

我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来 看一下selenium的运行效果

接下来我们就通过代码来模拟百度搜索(展示效果)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import time

from selenium import webdriver

# 通过指定chromedriver的路径来实例化driver对象,chromedriver放在当前目录。

# driver = webdriver.Chrome(executable_path='./chromedriver')

# 这里的chromedriver已经添加环境变量

driver = webdriver.Chrome()

# 控制浏览器访问url地址

driver.get( "https://www.baidu.com/" )

time.sleep( 3 )

# 在百度搜索框中搜索'python'

driver.find_element_by_id( 'kw' ).send_keys( 'python' )

# 点击'百度搜索'

driver.find_element_by_id( 'su' ).click()

time.sleep( 6 )

# 退出浏览器

driver.quit()

运行结果

webdriver.Chrome(executable_path='./chromedriver') 中executable参数指定的是下载好的

chromedriver文件的路径

driver.find_element_by_id('kw').send_keys('python') 定位id属性值是'kw'的标签,并向其中输入字符 串'python'

driver.find_element_by_id('su').click() 定位id属性值是su的标签,并点击

click函数作用是:触发标签的js的click事件

三、selenium提取数据

1、driver对象常用的属性和方法

在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法

  • driver.page_source 获取当前标签页浏览器渲染之后的网页源代码
  • driver.current_url获取当前标签页的url
  • driver.close() 关闭当前标签页,如果只个一个标签页则关闭整个浏览器
  • driver.quit() 关闭浏览器
  • driver.forward() 页面前进
  • driver.back() 页面后退
  • driver.screen_shot(img_name) 页面截图

示例

打印当前标签页的url

1

2

3

4

5

6

7

8

9

10

import time

from selenium import webdriver

driver = webdriver.Chrome()

# 控制浏览器访问url地址

driver.get( "https://www.baidu.com/" )

time.sleep( 3 )

# 打印当前标签页的url

print (driver.current_url)

driver.quit()

运行结果:

2、driver对象定位标签元素获取标签对象的方法

在selenium中可以通过多种方式来定位标签,返回标签元素对象

方式 功能
find_element_by_id 返回一个元素
find_element(s)_by_class_name 根据类名获取元素列表
find_element(s)_by_name 根据标签的name属性值返回包含标签对象元素的列表
find_element(s)_by_xpath 返回一个包含元素的列表
find_element(s)_by_link_text 根据连接文本获取元素列表
find_element(s)_by_partial_link_text 根据链接包含的文本获取元素列表
find_element(s)_by_tag_name; 根据标签名获取元素列表
find_element(s)_by_css_selector 根据css选择器来获取元素列表

注意

find_element和find_elements的区别:

  • 多了个s就返回列表,没有s就返回匹配到的第一个标签对象
  • find_element匹配不到就抛出异常,find_elements匹配不到就返回空列表

by_link_text 和 by_partial_link_tex 的区别:全部文本和包含某个文本

以上函数的使用方法:

driver.find_element_by_id('id_str')

id_str是id值

示例

接下来我们就通过代码来模拟百度搜索(具体讲解)

首先我们先打开百度页面,然后点击网页检查 ,定位搜索框,可以看见搜索框的input标签的id值为kw

  • 于是开始编写基础代码
  • 通过driver.get()获取网页
  • 通过find_element_by_id('kw')定位搜索框
  • 通过.send_keys('python')向搜索框输入搜索信息

1

2

3

4

5

6

7

8

9

10

import time

from selenium import webdriver

driver = webdriver.Chrome()

# 控制浏览器访问url地址

driver.get( "https://www.baidu.com/" )

time.sleep( 3 )

# 在百度搜索框中搜索'python'

driver.find_element_by_id( 'kw' ).send_keys( 'python' )

再定位搜索按钮:“百度一下” ,其id值为su

完善代码,通过 .click() 实现点击搜索

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import time

from selenium import webdriver

driver = webdriver.Chrome()

# 控制浏览器访问url地址

driver.get( "https://www.baidu.com/" )

time.sleep( 3 )

# 在百度搜索框中搜索'python'

driver.find_element_by_id( 'kw' ).send_keys( 'python' )

# 点击'百度搜索'

driver.find_element_by_id( 'su' ).click()

time.sleep( 6 )

# 退出浏览器

driver.quit()

运行结果

3、标签对象提取文本内容和属性值

find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法

对元素执行点击操作: element.click()

对定位到的标签对象进行点击操作

向输入框输入数据: element.send_keys(data)

对定位到的标签对象输入数据

获取文本: element.text

通过定位获取的标签对象的 text 属性,获取文本内容

获取属性值: element.get_attribute("属性名")

通过定位获取的标签对象的 get_attribute 函数,传入属性名,来获取属性的值

获取 “百度一下”搜索按钮的value属性值

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import time

from selenium import webdriver

driver = webdriver.Chrome()

# 控制浏览器访问url地址

driver.get( "https://www.baidu.com/" )

time.sleep( 3 )

# 点击'百度搜索',用ele变量接受获取的元素

ele = driver.find_element_by_id( 'su' )

print (ele.get_attribute( 'value' ))

time.sleep( 6 )

# 退出浏览器

driver.quit()

运行结果

四、selenium无头模式

我们知道,当我们利用 dirver.get() 获取网页时会自动打开一个网页,但是有时候我们可能不需要通过打开浏览器获取数据,于是就可以通过给driver对象设置无头模式 。

1

2

3

4

# 给driver对象设置无头模式

op = webdriver.ChromeOptions()

op.add_argument( '--headless' )

driver = webdriver.Chrome(options = op)

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你! 【100%无套路免费领取】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python selenium模块的安装和配置教程 的相关文章

随机推荐

  • iOS手机查看蓝牙底层日志

    文章目录 一 需要的环境 二 在iOS设备上安装Profiles文件 三 安装Xcode 四 安装packetLogger 五 启动蓝牙数据包分析 参考文档 A New Way to Debug iOS Bluetooth Applicat
  • 用友签约新奥集团,共建智慧资产管理平台

    近日 用友成功签约新奥集团数智资产项目 项目将以数据驱动 资产创值为牵引 将全集团所有板块的资产数据按照标既定模型全面可视化展示 通过数据分析 模型沉淀 智能识别低效闲置资产 预警 赋能资产处置 盘点等事项形成处理闭环 通过数智驱动处置等活
  • 振弦采集仪在地基沉降监测中的应用研究

    振弦采集仪在地基沉降监测中的应用研究 振弦采集仪是一种专门用于测量地基沉降的仪器 它采用振弦原理来测量地基的沉降情况 振弦采集仪通过在地基上安装一根细长的弹性振弦 并测量振弦的变形来获得地基沉降的数据 在地基沉降监测中 振弦采集仪可以提供精
  • promethues grafana 安装和使用

    文章目录 1 promethues安装 2 node exporter安装 3 grafana安装 4 配置promethues监控node节点 5 grafana操作 外传 Docker 镜像下载地址 https hub docker c
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -小程序端TabBar搭建

    锋哥原创的uniapp微信小程序投票系统实战 uniapp微信小程序投票系统实战课程 SpringBoot2 vue3 2 element plus 火爆连载更新中 哔哩哔哩 bilibili uniapp微信小程序投票系统实战课程 Spr
  • LONGQLORA: EFFICIENT AND EFFECTIVE METHOD TO EXTEND CONTEXT LENGTH OF LARGE LANGUAGE MODELS

    本文是LLM系列文章 针对 LONGQLORA EFFICIENT AND EFFECTIVE METHOD TO EXTEND CONTEXT LENGTH OF LARGE LANGUAGE MODELS 的翻译 LONGQLORA 扩
  • 新规施行推动数据资产化迈出关键一步

    经济参考报 1月2日刊发文章 新规施行推动数据资产化迈出关键一步 文章称 2024年1月1日起 企业数据资源相关会计处理暂行规定 下称 暂行规定 正式施行 暂行规定 明确数据资源的确认范围和会计处理适用准则等 业内人士表示 这是推动数据资产
  • PD SINK协议芯片系列产品介绍对比-ECP5701、FS312A、CH221K、HUSB238、AS225KL

    目录 一 ECP5701 二 FS312A 三 CH221K 四 HUSB238 五 AS225KL 在如今快节奏生活不断蔓延的背景下 人们对各种事情的处理也渐渐地开始要求在保证质量的情况下 不断加快 手机快充就是一个典型的例子 从开始的1
  • 智康护智慧养老院建设之智慧视频联动解决方案

    智康护智慧养老院建设之智慧视频联动解决方案是一种基于智能技术和视频监控的创新解决方案 旨在提升养老院的安全管理和服务质量 通过视频联动实现智能化的监控和应急响应 建设背景 随着人口老龄化问题的日渐严重 养老院作为提供长期照护和安居服务的场所
  • 程序员思维——四个思考原则

    一 什么是四个思考原则 以终为始 确定好真实目标 任务分解 找到实施路径 沟通反馈 解决与人打交道出现的问题 自动化 解决与机器打交道出现的问题 二 如何运用思考框架 运用这个思考框架 我们需要问自己一些问题 Where are we 我们
  • Qt学习_17_一些关于QTableWidget的记录

    1 QTableWidget clear 程序异常退出 近日 项目中使用到QTableWidget 遇到一个问题 项目需要清空这个表格 但是无论调用clear clearContents 程序都报 程序异常退出 而且项目程序还比较多 最开始
  • prometheus grafana mysql监控配置使用

    文章目录 前传 bitnami mysqld exporter 0 15 1镜像 出现了问题 my cnf 可以用这个 prom mysqld exporter v0 15 0 镜像 重要的事情 mysql监控效果 外传 前传 promet
  • 第九章 1 面向对象程序设计

    两大编程思想 面向过程和对象 p108 面向过程 功能上的封装 面向对象 属性和行为上的封装 面向过程 面向对象 区别 事物比较简单 可以用线性的思维去解决 事物比较复杂 使用简单的线性思维无法解决 共同点 1 面向过程和面向对象都是解决实
  • Android跨进程渲染

    文章目录 背景 实现步骤 服务端 客户端 参考代码
  • Python+Selenium键盘鼠标模拟事件操作详解

    当我们定位到具体的一个元素的时候就可以对这个元素进行具体的操作 比如之前章节所执行的 click 操作 这是最简单的操作 webdriver 还有其他的操作 比如元素的基本操作 点击 输入 清除 还有一些高级操作如鼠标键盘模拟事件 弹出框处
  • 服务器3M固定带宽什么意思?够用吗?

    云服务器3M固定带宽是什么意思 速度快吗 3M固定带宽是指云服务器的公网带宽 用于在外网提供服务的 3M带宽的下载速度是384KB 秒 上传速度是1280KB 秒 对于个人博客或流量不多的企业官网速度还是挺快的 阿里云服务器网aliyunf
  • thinkadmin安装步骤

    一 先cmd运行安装命令 创建项目 需要在英文目录下面执行 composer create project zoujingli thinkadmin 二 在confing中的database php配置数据库 三 将仓库的data复制到ap
  • 亚马逊自养号测评防关联技巧分享,亚马逊自养号怎么养?

    我们做亚马逊的都知道 想要做好亚马逊 测评是免不了的 很多卖家选择自养号这种方式 但是亚马逊养号并不是一件容易的事 需要我们提高养号的技术和掌握相应的技巧 而且随着平台审查力度的加强 自养号的账号关联问题也给卖家们带来许多困扰 那么什么是自
  • VUE+Springboot实现生成二维码及二维码下载功能

    一 Springboot相关 1 pom依赖引入
  • Python selenium模块的安装和配置教程

    一 selenium的安装以及简单应用 我们以谷歌浏览器的chromedriver为例 1 在Python虚拟环境中安装selenium模块 pip pip3 install selenium 2 下载版本符合的webdriver 以chr