查域名网站/搜索引擎优化不包括
接上篇《33、使用bs4获取星巴克产品信息》
上一篇我们介绍了如何使用bs4来解析星巴克网站,获取其产品信息。本篇我们来了解selenium技术的基础。
一、什么是selenium?
Selenium是一种用于自动化Web浏览器操作的开源工具。它提供了一组API(应用程序接口),使开发人员能够使用多种编程语言(如Python、Java、C#等)来控制浏览器的行为。
Selenium最初是为了进行Web应用测试而创建的,但它也可以用于执行各种Web自动化任务,如模拟用户操作、填写表单、点击按钮、提取数据等。
Selenium通过与浏览器进行通信,在浏览器中模拟用户行为。它可以打开浏览器,加载URL,查找和操作页面元素,发送键盘输入,执行JavaScript代码等。
Selenium支持多种浏览器,包括Chrome、Firefox、Safari、Edge等,每个浏览器都有对应的驱动程序,用于与Selenium进行交互。
常用的Selenium组件有:
1、Selenium WebDriver:用于编写测试脚本,控制浏览器行为,并获取网页内容。(老版本是Selenium RC)
2、Selenium Grid:用于在不同的机器上并行执行测试,以加快执行速度。
3、Selenium IDE:一个浏览器插件,可用于录制和回放用户在浏览器中的操作,方便快速生成测试脚本。
总之,Selenium是一个功能强大的工具,可用于自动化Web浏览器操作,帮助开发人员和测试人员自动执行各种Web任务和测试。
二、为什么要使用selenium?
使用Selenium有以下几个主要原因:
1、自动化测试:Selenium最初是为了进行Web应用的自动化测试而创建的。通过编写测试脚本,可以模拟用户在浏览器中的操作,自动执行各种测试用例,包括点击按钮、填写表单、验证页面元素等。这可以大大提高测试效率和准确性,并且可以在不同的浏览器和操作系统上运行测试。
2、跨浏览器兼容性:Web应用在不同的浏览器中可能会有不同的呈现和行为。使用Selenium可以轻松地在多个主流浏览器(如Chrome、Firefox、Safari、Edge等)中执行测试,以确保应用在各种浏览器环境下的兼容性。
3、数据抓取和网页解析:Selenium可以作为一个强大的网络爬虫工具,帮助自动化地抓取网页内容并进行解析。这在需要从多个网页中提取数据、监测网页变化或进行网站内容分析时非常有用。
4、任务自动化:除了测试和数据抓取,Selenium还可以用于执行各种Web任务的自动化。例如,自动化提交表单、定期检查网站状态、自动化下载文件等。通过编写脚本来指导浏览器完成这些任务,可以节省时间和人力成本。
三、如何安装selenium?
要安装Selenium,可以按照以下步骤进行操作:
1、选择编程语言:首先,确定你将使用哪种编程语言来编写Selenium脚本。Selenium支持多种编程语言,如Python、Java、C#等。
2、安装语言相关的开发环境:根据你选择的编程语言,安装相应的开发环境。例如,对于Python,你需要安装Python解释器和相关的包管理工具(如pip)。
3、安装Selenium库:使用包管理工具安装Selenium库。在命令行中运行适用于你选择的编程语言的安装命令。例如,对于Python和pip,可以运行以下命令来安装Selenium库:
pip install selenium
4、下载浏览器驱动程序:Selenium需要与特定的浏览器进行交互,因此你需要下载并配置相应的浏览器驱动程序。驱动程序的下载链接可以在Selenium官方文档中找到。根据你使用的浏览器和操作系统,下载并解压合适的驱动程序。
这里是谷歌浏览器Selenium驱动的下载地址:https://npm.taobao.org/mirrors/chromedriver/
需要按照自己电脑谷歌浏览器的版本(谷歌浏览器右上角-->帮助-->关于),下载对应的驱动。如果实在没有,去官网下载(https://googlechromelabs.github.io/chrome-for-testing/,该链接会自动检测你谷歌浏览器版本,然后在下面给你驱动下载地址):
然后进去之后,再下载对应系统版本的webdriver(我这里是Windows):
5、配置驱动程序路径:将下载的驱动程序所在的目录添加到系统的环境变量中,或者在代码中指定驱动程序的路径。这样Selenium才能找到并与浏览器进行通信。
我们将下载下来的压缩文件解压:
将其中的chromedriver放置到自己Python安装文件的Scripts目录下:
尝试运行如下代码,能打开浏览器(闪一下)则表示配置成功:
from selenium import webdriver
driver = webdriver.Chrome()
6、编写和运行Selenium脚本:使用你选择的编程语言编写Selenium脚本,并在开发环境中运行它们。根据需要,你可以使用不同的Selenium组件(如WebDriver)来控制浏览器行为。
四、Python中selenium的使用步骤
使用pip安装Selenium库,并下载完驱动和设置好驱动路径后,就可以开始使用Selenium库编写脚本程序了。以下是一个简单的示例,展示了如何打开网页、查找元素并进行操作(这里是打开百度首页,输入“python”并进行搜索):
# _*_ coding : utf-8 _*_
# @Time : 2023-09-01 16:09
# @Author : 光仔December
# @File : selenium基础测试
# @Project : Python基础from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time# 初始化浏览器驱动程序
driver = webdriver.Chrome()try:# 打开网页driver.get('https://www.baidu.com')# 通过 id 找到input框input = driver.find_element(By.ID, "kw")# 输入pythoninput.send_keys('python')input.send_keys(Keys.ENTER) # 按下回车键# 等待5秒看结果time.sleep(5)
finally:# 关闭浏览器driver.close()
效果:
测试selenium浏览器自动化效果
这只是一个简单的示例,Selenium还提供了许多其他功能和方法,如查找元素的不同策略(ID、XPath、CSS选择器等)、模拟键盘输入、处理弹出框等。你可以查阅Selenium的官方文档或相关教程,以获取更多详细信息和示例代码。
下一篇我们详细讲解一下Selenium的使用和有关元素定位相关的内容。
参考:尚硅谷Python爬虫教程小白零基础速通教学视频
转载请注明出处:https://guangzai.blog.csdn.net/article/details/132627038
相关文章:

【Python从入门到进阶】34、selenium基本概念及安装流程
接上篇《33、使用bs4获取星巴克产品信息》 上一篇我们介绍了如何使用bs4来解析星巴克网站,获取其产品信息。本篇我们来了解selenium技术的基础。 一、什么是selenium? Selenium是一种用于自动化Web浏览器操作的开源工具。它提供了一组API(应…...

如何确保ChatGPT在文本生成中遵循道德和伦理准则?
确保ChatGPT在文本生成中遵循道德和伦理准则是一个复杂而重要的任务。人工智能(AI)系统,特别是语言模型,具有强大的生成能力,但如果不受到道德和伦理准则的约束,可能会导致一系列问题,包括歧视、…...

RISC-V Linux系统rootfs制作
文章目录 1、下载2、配置与编译3、运行 buildroot 是一个构建嵌入式Linux系统的框架。整个 buildroot 是由Makefile(*.mk) 脚本和 Kconfig(Config.in) 配置文件构成的,因此可以像配置 Linux 内核一样执行 make menuconfig 进行配置,编译出一个完整的、可…...

git常用场景记录 | 拉取远程分支A合并到本地分支B
文章目录 git常用场景记录拉取远程分支A合并到本地分支B本地分支B存在未add与commit的代码 git常用场景记录 doing,最后更新9.1 拉取远程分支A合并到本地分支B 需求描述 在团队合作时,我自己的本地分支B功能已经实现并合并到feature,之后发现…...

如何利用Linux进行数据管理和分析?
Linux是一款非常强大的操作系统,它不仅可以帮助你管理数据,还可以让你成为一名数据分析大师。只要你会使用命令行,你就可以用Linux进行数据管理和分析。 现在,让我们来看看如何使用Linux进行数据管理。 使用sort命令对数据进行排…...

vue3封装echarts图表数据无法渲染到页面
问题是后端的数据已经成功返回到前端了,但是Echarts图表一直不能被渲染,卡了一个多小时,最后问gpt才解决(gptyyds!!!) methods: {loadGet() {this.$axios.get(this.$httpUrl /goods…...

MySQL索引,事务和存储引擎
一、索引 1、索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 ●使用索引后可以不用扫描全表来定位某行的数据,而是先…...

开发指导—利用CSS动画实现HarmonyOS动效(一)
注:本文内容分享转载自 HarmonyOS Developer 官网文档 一. CSS 语法参考 CSS 是描述 HML 页面结构的样式语言。所有组件均存在系统默认样式,也可在页面 CSS 样式文件中对组件、页面自定义不同的样式。请参考通用样式了解兼容 JS 的类 Web 开发范式支持的…...

电商项目part10 高并发缓存实战
缓存的数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 先读缓存数据,缓存数据有,则立即返回结果;如果没有数据,则从数据库读数据,并且把…...

MongoDB实验——MongoDB shell操作
MongoDB shell操作 实验原理 MongoDB shell是一个可执行文件,是MongoDB自带的一个交互式JavaScript shell,位于MongoDB安装路径下的/bin文件夹中。要启动MongoDB shell,可执行命令mongo。这将在控制台提示符中启动该shell,Mongo…...

数据分析师职业发展道路,工作内容是什么?
很多同学问,参加数据分析就业班后之的就业发展道路是怎样的,工作又能做什么呢? 市面上的常见的工作类型有有运营类、技术类及分析类等,可以根据自己的意愿去做适合自己的工作,但是任何工作其实都是需要一技之长。…...

Vue3 + ts的使用
一. IDE的配置 1. VSCode 插件安装搜索builtin typescript 2. 点击“TypeScript and JavaScript Language Features”右下角的小齿轮,然后选择“Disable (Workspace)” 3. 重新加载工作空间。Takeover 模式将会在你打开一个 Vue 或者 TS 文件时自动启用。 二. 依赖的…...

CF Edu152 C
Problem - C - Codeforces 题意: 思路: 首先,观察样例可知 这种是等效的 推广一下 0000.....111111 ..l..............r...... 这种是等效的 容易想到维护后面第一个1的位置和前面第一个0的位置,然后把所有区间都等效一下&…...

iBooker 技术评论 20230902
一、女子同时供职 16 家公司却从不上班,全国骗薪群体至少有七八百人,为何会出现此类骗薪群体? 社保其实很好绕过。就是这些骗薪者一起创立一个外包公司,然后通过这个公司把自己外包出去。这些人和外包公司签的是劳务合同…...

视频动态壁纸 Dynamic Wallpaper for Mac中文
Dynamic Wallpaper是一款Mac平台上的动态壁纸应用程序,它可以根据时间等因素动态切换壁纸,提供更加生动和多样化的桌面体验。 Dynamic Wallpaper包含了多个动态壁纸,用户可以根据自己的喜好选择和切换。这些动态壁纸可以根据时间等因素进行自…...

Java“牵手”京东商品列表数据,关键词搜索京东商品数据接口,京东API申请指南
京东商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取京东商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问京东商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…...

springboot实战(三)之多环境部署配置文件生效方式
环境: jdk:1.8 springboot版本:2.7.15 配置: 1.新建yml文件 在resources包中创建application-dev.yml、application-testing.yml两个yml文件 2.配置 在application.yml进行配置生效文件 3.注意事项 新建yml的名称必须以&qu…...

java透传参数至logback,自定义日志文件名。过期日志文件自动删除
LogFilter filter日志拦截,把不需要打印的日志信息拦截在外,只录入有key参数的(filterReply FilterReply.ACCEPT;)。 package com.***.***.filter;import ch.qos.logback.classic.Level; import ch.qos.logback.classic.spi.IL…...

HFSS 3维曲线导入
HFSS 3维曲线导入 简介环境参考代码使用结果 简介 如图一所示,CST中可以通过导入和到出由任意点组成的曲线,但是HFSS中貌似不能导入(如图二所示),如果我们要将matlab的产生的曲线的点的数据导入特变麻烦,特…...

【消息中心】kafka消费失败重试10次的问题
Kafka消费失败重试10次的问题通常可以通过配置Kafka消费者来调整。在Kafka中,可以通过设置max.poll.interval.ms、fetch.min.bytes、fetch.max.bytes、fetch.max.wait.ms等参数来控制消费者的拉取消息的行为。 在Spring-Kafka中,消费失败的重试次数可以…...

无涯教程-Python机器学习 - Semi-supervised Learning函数
Python机器学习 中的 Semi - 无涯教程网无涯教程网提供https://www.learnfk.com/python-machine-learning/machine-learning-with-python-semi-supervised-learning.html...

7 | 计算每个键对应的平均值,并按降序排序
假设您有一个包含销售订单的RDD,其中每个元素是一个键值对,其中键表示产品名称,值表示销售数量。您希望按产品名称对销售订单进行分组,并计算每个产品的总销售数量。最后,希望获得每个产品的总销售数量以及按产品名称分组的详细销售订单列表。 计算每个键对应的总和和计数…...

kafka详解二
kafka详解二 1、 offset 1.1 offset介绍 老版本 Consumer 的位移管理是依托于 Apache ZooKeeper 的,它会自动或手动地将位移数据提交到 ZooKeeper 中保存。当 Consumer 重启后,它能自动从 ZooKeeper 中读取位移数据,从而在上次消费截止的地…...

SAP_ABAP_接口技术_RFC远程函数实践总结
SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型,ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977 SAP接…...

计算机 --> 磁盘 --> 分区
一、分区;步骤较完整,未测试 网址:电脑硬盘怎么分区?C盘/D盘/E盘......快来创建自己的DIY磁盘吧!_e盘怎么创建_布 迪的博客-CSDN博客...

3D视觉测量:形位公差 平面度测量(附源码)
文章目录 0. 测试效果1. 基本内容2. 实现方法3. 代码实现4. 参考文章目录:3D视觉测量目录微信:dhlddxB站: Non-Stop_0. 测试效果 1. 基本内容 平面度是一个表达平面平整程度的度量指标,它描述了一个表面与一个理想平面之间的偏差程度。在工程和制造领域,平面度是一个重要的…...

vmware虚拟机远程开发
目录 1. 下载vmware2. 下载ubuntu镜像3. 安装4. 做一些设置4.1 分辨率设置4.2 语言下载4.3 输入法设置4.4 时区设置 5. 直接切换管理员权限6. 网络6.1 看ip6.2 ssh 7. 本地编译器连接远程服务器7.1 创建远程部署的配置7.2 文件同步7.3 远程启动项目 8. ubuntu安装golang环境8.1…...

Web安全——穷举爆破上篇(仅供学习)
Web安全 一、概述二、常见的服务1、burpsuite 穷举后台密码2、burpsuite 对 webshell 穷举破解密码3、有 token 防御的网站后台穷举破解密码3.1 burpsuite 设置宏获取 token 对网站后台密码破解3.2 编写脚本获取token 对网站后台密码破解 4、针对有验证码后台的穷举方法4.1 coo…...

POJ 3045 Cow Acrobats 二分+优先队列
一、题目大意 题目中给出了N头牛,这些牛要互相叠罗汉,牛i承担的风险risk[i]为牛i上面的牛的质量之和sum[i](如果上面没有牛就是0)减去牛i的力量strength[i],即risk[i]sum[i]-strength[i] 我们要优化这个叠罗汉的顺序…...

手写实现call() apply() bind()函数,附有详细注释,包含this指向、arguments讲解
手写实现call() apply() bind()函数是很经典的问题,但是能掰扯清楚的文章确实不算多,于是笔者才决定写下本文,希望能给读者带来一些启发,如有错误欢迎指正。 目录 补充知识 函数中的this指向 类数组对象arguments call() 原理…...