大型情感剧集Selenium:1_介绍

2023-11-10 18:50

本文主要是介绍大型情感剧集Selenium:1_介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面的话

昨天说到,之后一阵子,打算把selenium的知识进行一个复习和系统的总结。要说明以下几点:

  1. 因为是系统的总结,所以文章具备连贯性,但我尽量将较为集中的知识点整理在一起发
  2. 由浅入深的知识内容,开篇肯定不会有太多的技术涉及,觉得无趣还望轻喷
  3. 并不是所有朋友都喜欢或都有意愿学习selenium,所以在这个系列中还是会穿插发一些其他的文章
  4. 毕竟文章的总结是基于python和selenium知识的,其中会涉及测试设计等方面,但不是文章重点,故不会过于详细的说明
  5. 这个系列会在微信公众号底部的文章分类单独开一个窗口进行集中收录,只是希望自己能坚持把这个系列的文章写完
  6. 欢迎催更与错误问题指正,但公众号一经发布的文章,无法修改,故对应的简书清风python会同步更新
学习selenium能做什么?

很多书籍、文章中是这么定义selenium的:

Selenium 是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web 的管理任务自动化。

可如果要是这么介绍selenium,估计明天关注我的人80%都要弃坑了,我又不是测试、我学什么selenium。wait a moment!先别取关...
请仔细读读后半句,支持所有基于web的管理任务和自动化
什么算基于web的任务,就只是自动化测试?非也非也,只要是通过浏览器访问的事件,都可以算在内啊!
如今,越来越多的反爬虫技术(千奇百怪的登陆验证、接口调用中的cookie验证、异步动态加载、等等...),是你没办法直接通过requests完成获取相关数据。这时候,你就可以使用selenium,模拟浏览器操作,自动化完成你的数据获取。

简单介绍selenium

公众号里面写上selenium的前世今生,你们肯定直接觉得篇幅太长懒得看了,那我简单的概括下:

  1. Jason Huggins 在2004年任职于ThoughtWorks时,发起了Selenium项目
  2. selenium存在三个版本1.0、2.0、3.0,且即将推出4.0
  3. Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
    • Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能
    • Selenium Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-App的功能测试
    • Selenium RC分为Client Libraries和Selenium Server。Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库
  4. Selenium 2.0 推出了WebDriver用来替代Selenium RC(主推: WebDriver 备胎:Selenium RC)
  5. Selenium 3.0 WebDriver彻底替代了Selenium Grid
  6. WebDriver封装了基础的协议规范,WebDriver 针对各个浏览器而开发(所以针对不同浏览器,需要下载不同的webdriver),用来控制浏览器
  7. 支持主流的编程语言,包括:Java、Python、C#、PHP、Ruby、JavaScript等

针对我们Python学习的内容,就是:

如何通过WebDriver封装的基础协议,完成正确的代码编写,从而控制浏览器进行成语接龙,为所欲为--为所欲为--为...

学习准备
  • Python3.5+,我使用的3.6.8...
  • 顺手的编辑器,我选择的pycharm
  • 配置好包管理工具pip,使用pip install selenium,完成selenium(selenium-3.141.0)的安装
  • selenium支持多种浏览器,但差别仅仅是需要下载不同的Webdriver,所以挑一款浏览器即可,
    我选择Chrome(v70版本),不知道版本怎么看?(浏览器输入:chrome://settings/help)
  • 下载对应浏览器及版本对应的Webdriver,并配置环境变量
  • 代码和markdown文章统一放在了git仓库,地址:https://github.com/KingUranus/SeleniumTest
  • 不半途而废的信心,over...

Chrome浏览器版本对应的Webdriver版本信息如下:

ChromeDriver版本支持的Chrome版本
v2.46v71-73
v2.45v70-72
v2.44v69-71
v2.43v69-71
v2.42v68-70
v2.41v67-69
v2.40v66-68
v2.39v66-68
v2.38v65-67
v2.37v64-66
v2.36v63-65
v2.35v62-64
v2.34v61-63
v2.33v60-62
v2.32v59-61
v2.31v58-60
v2.30v58-60
v2.29v56-58
v2.28v55-57
v2.27v54-56
v2.26v53-55
v2.25v53-55
v2.24v52-54
v2.23v51-53
v2.22v49-52
v2.21v46-50
v2.20v43-48
v2.19v43-47
v2.18v43-46
v2.17v42-43
v2.13v42-45
v2.15v40-43
v2.14v39-42
v2.13v38-41
v2.12v36-40
v2.11v36-40
v2.10v33-36
v2.9v31-34
v2.8v30-33
v2.7v30-33
v2.6v29-32
v2.5v29-32
v2.4v29-32

ChromeDriver下载,推荐大家使用华为开源镜像站,下载对应系统的Webdriver,Webdriver为一个单独的exe文件,如何配置是它生效?最懒的版本是丢到你的python安装根目录,亦或者你单独找个私密的地址存起来,然后在环境变量的path中添加配置该地址。

第一份selenium代码
# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/6/17 23:36
# @Software : PyCharm
# @version  :Python 3.6.8
# @File     : Day1_FirstDemo.py# 引入webdriver,不报错代表代表selenium安装成功
from selenium import webdriver
# 演示所需,添加等待时间
import time# 定义对应浏览器的webdrvier
# 若提示xxxdriver executable needs to be in PATH
# 你忘记下载webdriver,或者没配置好对应的环境变量
# 当然也会有报错版本不匹配的情况发生,那么请调整好你浏览器与Driver的对应版本
# 几种浏览器对应的引入方式
# driver = webdriver.Firefox()
# driver = webdriver.Ie()
driver = webdriver.Chrome()# 打开浏览器,并在地址栏输入所需访问的网站(我的简书)
driver.get("https://www.jianshu.com/u/d23fd5012bed")# 等待1秒,看看是否访问成功?
time.sleep(1)# 退出drvier关闭浏览器
driver.quit()

效果如下:


5847426-cb73d3c3a81d9739.gif
Day1_FirstDemo.gif
避坑指南

Message: 'chromedriver' executable needs to be in PATH

说明你忘记下载webdriver,或者没配置好对应的环境变量

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 71 and 75
(Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 6.1.7601 SP1 x86_64)

2.46版本的chromedriver,需要对应71-75的浏览器,我是70的,所以报错,去下载2.45即可

To Be Continue

今天的内容就到这里,如果觉得有帮助,欢迎将文章或者我的公众号【清风Python】分享给更多喜欢python的人。
毕竟像我这种疯狂天天更新,还都是原创的公众号,你们很少见吧....哈哈
你也可以点击右下角的在看,让我知道你来过...
公众号内有整理好的各类福利书籍供大家下载,还想要更多的可以私信我,记得扫码关注:

5847426-6a08c9b14c8a9d3d.png
清风Python

这篇关于大型情感剧集Selenium:1_介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384604

相关文章

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand