selenium安装和python中基本使用

news2024/11/18 14:05:15

selenium安装和python中基本使用

    • 背景
      • 下载和安装浏览器驱动
          • 115.xx版本之前驱动下载
          • 115.xx及之后的高版本驱动
      • 配置浏览器驱动
      • 安装selenium
      • 使用selenium
          • 点击按钮
          • 搜索内容

背景

selenium 出现的初衷就是一个自动化测试工具,她可以打开浏览器,然后像用户一样去操作浏览器(比如点击按钮,搜索内容等)。

在使用 python 爬取网络数据时,经常会看到接口返回一些加密数据,当我们爬取对应接口数据后,往往需要想办法对其结果进行解密才能拿到最终想要的数据内容。

当程序员使用selenium打开一个浏览器窗口时,程序员可以使用代码的形式去获取这个浏览器中看到的内容来直接提取网页中的各种信息,因为此时不管程序中对接口返回的数据如何加密,最终显示在浏览器中的数据都是用户能看得懂的解密后的内容,程序员想要爬取有效信息直接爬取这些内容即可。

下载和安装浏览器驱动

这里我们选择的是 Chrome 浏览器,首先查看你本地浏览器的版本
在这里插入图片描述

115.xx版本之前驱动下载

115版本之前的 Chromedriver 通过 Chromedriver 淘宝镜像来找到对应版本的对应操作系统的压缩包来下载
在这里插入图片描述

例如这里选择的版本是 114.0.5753.90

注意:Windows不管是32位还是64位都是这个 chromedriver_win32.zip 这个包

在这里插入图片描述

115.xx及之后的高版本驱动

115.xx及之后版本的Chromedriver版本及对应操作系统下载地址如下:

版本号驱动地址
115.0.5790.170linux64 mac-arm64 mac-x64 win32 win64
116.0.5845.96linux64 mac-arm64 mac-x64 win32 win64
117.0.5938.92linux64 mac-arm64 mac-x64 win32 win64
118.0.5993.18linux64 mac-arm64 mac-x64 win32 win64
119.0.6026.0linux64 mac-arm64 mac-x64 win32 win64

注意:因为这里没有我需要的 118.0.5993.89 版本,所以就选择一个最相近的版本 118.0.5993.18

配置浏览器驱动

配置过程很简单,只需要将驱动器下载后的内容解压,将其中的 chromedriver.exe 文件放在 python 解析器所在的文件夹中即可。

如何查看你的python解析器的位置呢?使用vscode执行一个.py文件:

在这里插入图片描述

执行时编辑器就会提示你,解析你的 .py 文件的 python 解析器的位置所在

在这里插入图片描述
在这里插入图片描述

安装selenium

在 vscode 中打开一个终端直接输入命令

pip install selenium

使用selenium

创建一个 .py 文件

# /index.py
from selenium.webdriver import Chrome

# 1.创建浏览器对象
web = Chrome()
# 2.打开一个网址
web.get('http://www.baidu.com')
input() # 防止页面自动关闭

注意:我本地浏览器版本是 118.0.5993.89 ,驱动版本是 118.0.5993.18,版本没有完全对应,可能会导致打开的页面出现闪退,所以在程序里加上一个 input() 防止闪退(盲猜是这个原因,如果你有更好的解决方式,欢迎留言 Thanks♪(・ω・)ノ)。

在这里插入图片描述

点击按钮

点击 www.baidu.com 首页中的 “换一换” 按钮

# /index.py
from selenium.webdriver import Chrome

web = Chrome()
web.get('http://www.baidu.com')
el = web.find_element('class name', 'hot-refresh-text')
el.click()

input()
搜索内容

搜索“周杰伦”获取搜索结果

# /index.py
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys

web = Chrome()
web.get('http://www.baidu.com')
el = web.find_element('id', 'kw').send_keys('周杰伦', Keys.ENTER)

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1129330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试进阶篇----自动化测试脚本开发

自动化测试脚本开发 一、自动化测试用例开发 1、用例设计需要注意的点 2、设计一条测试用例 二、脚本开发过程中的技术 1、线性脚本开发 2、模块化脚本开发(封装线性代码到方法或者类中。在需要的地方进行调用) 3、关键字驱动开发:selen…

php 数组基础/练习

数组 练习在最后 数组概述 概述与定义 数组中存储键值对 数组实际上是一个有序映射 key-value,可将其当成真正的数组、列表(向量)、散列表、字典、集合、栈、队列等 数组中的元素可以是任意类型的数据对象(可以嵌套数组&#…

AI作画使用指南

AI作画API使用文档请前往:https://blog.csdn.net/qq_48896417/article/details/132520804 一、定义 AI作画使用指南 二、形式 「公式」 图片主体,细节词,修饰词 细节词可以任意组合,修饰词可以限定一种风格,也可以…

永恒之蓝 ms17-010

文章目录 永恒之蓝 ms17-0101. 漏洞介绍1.1 影响版本1.2 漏洞原理 2. 信息收集2.1 主机扫描2.2 端口扫描 3. 漏洞探测4. 漏洞利用5. 特殊情况5.1 安装wine32环境5.2 安装攻击32位操作系统所用的的脚本 永恒之蓝 ms17-010 很久之前做过的永恒之蓝漏洞… 1. 漏洞介绍 永恒之蓝…

【STM32】RCC时钟模块(使用HAL库)

https://gitee.com/linhir-linhir/stm32-f103-c8/blob/master/STM32%E6%9C%80%E6%96%B0%E5%9B%BA%E4%BB%B6%E5%BA%93v3.5/Libraries/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h STM32最新固件库v3.5/Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c…

Linux环境开发工具yum、makefile的使用 【Linux】

文章目录 Linux软件包管理器 - yumLinux下安装软件的方式yum查找软件包如何实现本地机器和云服务器之间的文件互传卸载软件Linux编译器 - gcc/g 程序的翻译过程1.预编译(预处理)2.编译(生成汇编)3.汇编(生成机器可识别…

MySQL数据库 #3

文章目录 一、创建表的完整语法二、约束条件1.unsigned (无符号)2. zerofill (0填充)3. default (默认值)4. not null(非空)5. unique(唯一)6. primary key &…

1024程序员节背后的秘密:1024程序员节的前世今生

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

中国艺术孙溟㠭篆刻《绕绕》

孙溟展先生现在的这方篆刻作品,没有使用大篆和小篆文字来篆刻,彰显篆刻的金石魅力。一改以往的不同,以圆形组合设计,用篆刻的刀法刻出,即体现篆刻的美,又达到了作者想表达的感情。这方篆刻作品溟展先生起名…

SD NAND

文章目录 前言SD NAND vs SD 卡SD NAND vs SPI NANDCS SD NAND 优势芯片介绍结构框图引脚介绍参考设计 焊接测速单片机读写测试作为 ARM Linux 系统盘使用 前言 提到 SD,最先想到的就是 SD 卡,由于体积关系,TF 卡使用得更为普遍,…

[Ubuntu 18.04] 搭建文件夹共享之Samba服务器

Samba是一个开源项目,允许Windows用户在Linux和Unix系统上进行文件共享。 Samba服务器是一个可以让Linux或Unix系统在网络上充当Windows NT/2000/XP/2003等网络操作系统的共享资源的软件。它允许用户通过SMB/CIFS协议在Linux或Unix系统与Windows共享资源。 Samba服务器的主要…

VRPTW(MATLAB):淘金优化算法GRO求解带时间窗的车辆路径问题VRPTW(提供参考文献及MATLAB代码)

一、VRPTW简介 带时间窗的车辆路径问题(Vehicle Routing Problem with Time Windows, VRPTW)是车辆路径问题(VRP)的一种拓展类型。VRPTW一般指具有容量约束的车辆在客户指定的时间内提供配送或取货服务,在物流领域应用广泛,具有重要的实际意义。VRPTW常…

ARM | 传感器必要总线IIC

IIC总线介绍 1.谈谈你对IIC总线理解? 1)IIC总线是串行半双工同步总线,主要用于连接整体电路 2)SCL/SDA作用:IIC是两线制,一根是时钟线SCK,用于控制什么时候进行进行数据传输,时钟信号由主机发出; 另一根是数据线SDA,用于进行数据传输,可以从…

垃圾收集器与内存分配策略

概述 垃圾收集需要完成的三件事情: 哪些内存需要回收?什么时候回收?如何回收? 判断对象是都存活的算法: 引用计数法:在对象中添加一个引用计数器,每当有一个地方引用时,计数器值就…

python基础教程:异常处理

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 有时候我们在写程序的时候会出现错误或者异常,导致程序终止,如下这个例子: #!/usr/bin/env python a 2/0 print(a)结果提示如…

Visual Studio Professional 2019 软件安装教程(附安装包下载)

Microsoft Visual Studio 是一个非常强大的集成开发环境(IDE),适用于 Windows 上的 .NET 和 C 开发人员。它提供了一系列丰富的工具和功能,可以提升和增强软件开发的每个阶段。 Visual Studio IDE 是一个创意启动板,可…

C++ 多线程编程和同步机制:详解和实例演示

C中的多线程编程和同步机制使得程序员可以利用计算机的多核心来提高程序的运行效率和性能。本文将介绍多线程编程和同步机制的基本概念和使用方法。 多线程编程基础 在C中&#xff0c;使用<thread>库来创建和管理线程。线程可以通过函数、成员函数或者Lambda表达式来实现…

基于C#使用winform技术的游戏平台的实现【C#课程设计】

基于C#使用winform技术的游戏平台的实现【C#课程设计】 说明项目结构项目运行截图及实现的功能 部分代码一些说明(个人觉得一些难点的说明)一、ListView &#xff0c;ImageList 的综合使用二、图片上传以及picturebox 图片的动态替换三、图表插件的使用四、SQL工具类封装五、高…

最新哔哩哔哩邮箱绑定接口签名JS逆向分析

本章教程主要逆向分析 哔哩哔哩邮箱绑定接口biliCSRF 和mid 参数。 教程仅供学习参考,请勿滥用,由此带来的法律责任需由自己承担。 目录 一、接口参数分析 二、签名加密代码 三、滑块验证码 一

LabVIEW应用开发——控件的使用(四)

接上文&#xff0c;这篇介绍时间控件。 LabVIEW应用开发——控件的使用&#xff08;三&#xff09; 1、时间控件Time Stamp control 在日常软件开发场景中&#xff0c;时间也是一种常用的控件&#xff0c;用于表达当前时间的显示、对下设置时间、时间同步等等场景。LabVIEW专门…