selenium的配置与基本使用,Python-MVP模式详解

这篇具有很好参考价值的文章主要介绍了selenium的配置与基本使用,Python-MVP模式详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

正文

2.3selenium的常用动作

2.4selenium实践

2.4.1通过搜索框查找信息

2.4.2获取浮窗数据

2.4.3实现翻页功能

2.4.4使用句柄实现多窗口爬取数据

2.4.5滑动验证

3.总结


1.环境配置

======

1.1安装selenium


在命令行或PyCharm terminal 输入pip install Selenium selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

1.2安装EdgeDriver


我用习惯了电脑自带的edge浏览器,这里我就安装EdgeDriver。

首先点击浏览器右上角进入设置,或者直接访问 edge://settings/profiles ,点击关于,可以看到你现在的浏览器的版本,我这里是96.0.1054.29selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

然后进入官网Microsoft Edge Driver - Microsoft Edge Developer,因为我是最新版所以直接选择第一个,点击x86即可自动下载。下载完成后将压缩包解压到指定目录,之后就能通过确定路径进行连接了。

2.selenium的使用

=============

2.1selenium的创建


直接上代码解释。(python格式代码注释比较难看我就用普通格式的代码)

导入包

from selenium import webdriver

if name == ‘main’:

指定路径

driver_path = ‘C:\edgedriver_win64\msedgedriver.exe’

创建driver对象

driver = webdriver.Edge(driver_path)

指定访问网址,如百度

url = ‘https://www.baidu.com/’

访问网址

driver.get(url)

打印源码

print(driver.page_source)

打印当前网址

print(driver.current_url)

运行完后关闭程序

driver.quit()

运行成功后输出源码

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库2.2selenium查找元素的方法


selenium常用元素定位方法

| 方法 | 描述 |

| — | — |

| find_element_by_id() | 通过元素id属性定位元素 |

| find_element_by_name() | 通过元素name属性定位元素 |

| find_element_by_class_name() | 通过元素class属性定位元素 |

| find_element_by_css_selector() | 通过css选择器定位元素 |

| find_element_by_link_text() | 通过超链接定位元素 |

| find_element_by_xpath() | 通过xpath定位元素 |

| find_element_by_tag_name() | 通过标签名定位元素 |

| find_elements(By.Type,value) | 通用方法 |

| is_display() | 判断某个元素是否存在 |

重点

**selenium定位元素的格式为:find_element_by_xx(), find_elements_by_xx(),**element返回符合条件的单个元素,当出现多个符合条件的元素时,返回的是第一个元素。elements返回的是列表,里面包含所有符合条件的元素;当使用find_element没有查找到元素时,程序将会报错,find_elements没查找到元素会返回空列表,不确定有没有元素时可以使用try-except方法,在之后的例子中我会讲解;如果直接打印element的话会返回这个

<selenium.webdriver.remote.webelement.WebElement (session=“7c081bdc33be8d6a34de5f2ec3a91173”, element=“dede5231-6016-4a4a-ae7c-261c2bac0422”)>

这肯定不是我们想要的结果,一般来说我们要的是文本,此时**要输出文本的话在元素后面加.text即可打印文本,而文本是该节点的所有文本,包括子节点的文本,我在xpath会讲。**下面我以百度为例,讲解如果使用selenium语句获取网页信息。

进入百度,假如我们要爬取热搜词句该怎么做呢?

选择第一个文本,右击检查可以马上确定该文本在源码中的位置

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

接下来就使用几种常见的方法对文本进行获取。

2.2.1 find_element_by_class_name()

我们看到文本前面有个class属性标签,所以我们可以直接通过find_element_by_class_name()的方法对其获取。

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

问题来了,我们怎么知道看到的这个class名是不是只有一个,或者说是第一个呢?(因为只有在一个元素,或者是第一个元素的情况时使用find_element查找才能找到刚看到的那个)有两个办法,1.在源码一个一个找。2.在源码中使用xpath确定。我说第二种,回到刚才源码,使用ctrl+F,输入: //span[@class=‘title-content-title’]

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库发现他们是有规律的,点击回车可以确定是下一条热搜语句。

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

因此我们可以使用find_elements的方法获取所有热搜语句再进行输出。代码如下。

element如果没有找到元素时,selenium会报错,所以使用try可以避免因未找到元素而终止程序的情况

try:

找第一个符合条件的元素

a = driver.find_element_by_class_name(‘title-content-title’)

print(a.text)

except:

print(‘没有找到该元素!’)

查找所有符合条件的元素

a = driver.find_elements_by_class_name(‘title-content-title’)

如果用elements没找到元素会返回空列表不会报错。

if(len(a) != 0):

for i in a:

print(a.index(i)+1)

print(i.text)

else:

print(‘没有找到该元素!’)

输出如下

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

2.2.2 ★find_element_by_xpath()

同理,如果您已经学会了第一种方式查找的话,那么这种方法肯定难不倒你。

代码如下:

element如果没有找到元素时,selenium会报错,所以使用try可以避免因未找到元素而终止程序的情况

try:

找第一个符合条件的元素

a = driver.find_element_by_class_name(‘title-content-title’)

a = driver.find_elements_by_xpath(‘//span[@class=“title-content-title”]’)

print(a.text)

except:

print(‘没有找到该元素!’)

查找所有符合条件的元素

a = driver.find_elements_by_class_name(‘title-content-title’)

a = driver.find_elements_by_xpath(‘//span[@class=“title-content-title”]’)

如果用elements没找到元素会返回空列表不会报错。

if len(a):

for i in a:

print(a.index(i) + 1)

print(i.text)

else:

print(‘没有找到该元素!’)

输出结果跟上面一样

**值得一提的是,selenium跟以往的xpath有所区别。**比如他无法直接获取元素的属性值,以上面的代码为例,如果你想获取class的值‘title-content-title’的话正常情况直接在xpath路径后面加个/@class即’//span[@class=“title-content-title”]/@class’就可以了,但在selenium里必须先获取span的xpath的路径,在通过.get_attribute(‘class’)进行获取。注意加载百度热搜会有两种版本,一种横版,一种竖版,横版竖版的代码会不一样。

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

查找的代码如下:

try:

a = driver.find_element_by_xpath(‘//*[@id=“hotsearch-content-wrapper”]/li[1]/a/span[2]’)

print(a.get_attribute(‘class’))

except:

print(‘没有找到该元素!’)

还有一点的不同就是如果想获取一个节点下的文本时一般的xpath是在路径下加个’/text()',而selenium他是在找出元素之后加.text。**而且,他获取的是这个节点下的所有文本,包括子节点的文本。**有什么区别呢?我举个例子:

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

用常规xpath的话要这样’//div[@class=“job-detail”]/a/text()‘获取完进行拼接后去除‘查看地图’,之后再获取’//div[@class=“job-detail”]/text()'再拼接,如果地址再详细一点的话这样处理起来比较麻烦,但是selenium一步搞定,最后再用字符串分割去掉后面的‘查看地图’即可。这种方法在之后的爬取拉勾网信息中显得比较方便了。

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

2.2.3 find_element_by_tag_name()

没遇到合适的例子,没办法举例,本质上还是跟前面的查找方法一样的,有不懂的地方可以问我。

2.2.4 find_element_by_id()

这个我可以跟下面一起讲吗?见2.4.1

2.3selenium的常用动作


| 方法名 | 描述 |

| — | — |

| move_to_element() | 鼠标悬浮在某元素上 |

| click() | 左键单击元素 |

| double_click() | 左键双击元素 |

| context_click() | 右键单击元素 |

| click_and_hold()         | 长按元素 |

send_keys(str)

|

传入元素

|

以及执行js脚本 driver.execute_script(),设置窗体起始位置driver.set_window_position();

设置窗体大小driver.set_window_size(),driver.maximize_window(),使用句柄等。

2.4selenium实践


2.4.1通过搜索框查找信息

同样以百度为例,我们在搜索框右击检查,发现这里有个‘input’,说明我们是可以向里面传递字符串的

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

假设id为’kw’的元素不止一个,那么我们就使用find_elements_id()进行查找,将返回的元素列表进行输出,如果输出的元素不止一个,那么我们需提升过滤条件,或者使用xpath路径查找。而这里返回的元素是唯一的,因此我们可以直接使用find_element_id(),确定元素后使用send_keys()传递字符串。一般的,‘kw’其实就是’keywords’,作为一名合格的程序员,良好的编程习惯不能少,每个变量都应该以其作用来命名。话说回来。传递完参数后我们就点击搜索按钮即可搜索。至于搜索按钮…选中按钮右击检查可看到class名称有个‘btn’,因此可以大概知道这是一个按钮,实际上就是,因为我们通过检查来确定源码位置的,所以他标出来的位置就是目的位置。selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

我们找到这个元素的位置后使用click()就可以完成点击搜索了。下面看一下代码如何实现:

导入包

from selenium import webdriver

if name == ‘main’:

指定路径

driver_path = ‘C:\edgedriver_win64\msedgedriver.exe’

创建driver对象

driver = webdriver.Edge(driver_path)

指定访问网址,如百度

url = ‘https://www.baidu.com/’

访问网址

driver.get(url)

str = input(“请输入您想要查找的关键词:”)

try:

kw = driver.find_element_by_id(‘kw’)

kw.send_keys(str)

btn = driver.find_element_by_id(‘su’)

btn.click()

except:

print(‘没有找到该元素!’)

driver.quit()

2.4.2获取浮窗数据

我们以拉勾网为例,进入到招聘信息界面

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

当我们将鼠标停留在职位名称上面时会弹出这个简略信息的浮窗

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

而当鼠标移开时浮窗信息也随之消失。右击检查源码,发现他是动态的

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

为了能够获取浮窗信息我们必须要将鼠标停留在上面才能获取信息,右击检查

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

发现文本信息在类名为这串代码的节点下

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

接下来用driver的类名查找元素的办法就能爬取浮窗信息了。我们结合代码分析一下

import time

from selenium import webdriver

from selenium.common.exceptions import NoSuchElementException

from selenium.webdriver import ActionChains

if name == ‘main’:

指定路径

driver_path = ‘C:\edgedriver_win64\msedgedriver.exe’

创建driver对象

driver = webdriver.Edge(driver_path)

# 指定访问网址

driver.get(‘https://www.lagou.com/wn/jobs?labelWords=&fromSearch=true&suginput=&kd=java’)

时间可以适当修改

time.sleep(2)

查找悬停目标元素,如果没找到会抛出异常,所以要用try捕获

try:

move = driver.find_element_by_xpath(‘//div[@class=“item__10RTO”]’) # 查找符合条件的第一个元素

except NoSuchElementException as e:

print(“没有该元素!”)

鼠标悬停至招聘信息中,获取二级页面简略信息

ActionChains(driver).move_to_element(move).perform()

等待两秒再获取浮窗信息,不然可能数据没更新

time.sleep(2)

获取浮窗信息

selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
selenium的配置与基本使用,Python-MVP模式详解,2024年程序员学习,selenium,python,数据库

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-v2Z9hobs-1713386396077)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!文章来源地址https://www.toymoban.com/news/detail-857674.html

到了这里,关于selenium的配置与基本使用,Python-MVP模式详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

    首先,需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例,可以使用以下命令安装selenium和chromedriver: 然后,需要下载对应版本的chromedriver,并将其添加到环境变量中。下载地址:http://chromedriver.storage.googleapis.com/index.html 不懂安装的,可以参考Chormedriver下载和安

    2024年02月09日
    浏览(58)
  • Python中Selenium的基本使用

    目录 一、Selenium是什么? 二、使用步骤   1.引入库   2.下载浏览器驱动   3.配置浏览器驱动    4.创建WebDriver对象   4.1.options    4.2.service   4.3.desired_capabilities   4.4.executable_path  5.WebDriver的属性  6.元素定位  三.打开百度网页的简单示例  总结 Selenium是一个用于自动化浏览器

    2024年02月08日
    浏览(43)
  • Python Selenium 的基本使用方法

    Selenium 是一个用于自动化 web 浏览器的工具,它提供了一套用于测试 web 应用程序的工具和库。Selenium 最初是用于测试 web 应用程序的,但它也被广泛用于进行网络数据采集、自动化任务和网页操作等。 Selenium 支持多种编程语言,包括 Python、Java、JavaScript、C# 等,但最为常用的

    2024年04月28日
    浏览(45)
  • Python爬虫——selenium的安装和基本使用

    1.什么是selenium? selenium是一个用于web应用程序测试的工具 selenium测试直接运行在浏览器中,就像真正的用户在操作一样 支持通过各种driver(FrifoxDriver,ItenrentExploreDriver,OperaDriver,ChromeDriver )驱动 selenium也是支持无界面浏览器操作的 2.为什么使用selenium? 模拟浏览器功能,

    2024年02月13日
    浏览(53)
  • 【Python_Selenium学习笔记(一)】Selenium介绍及基本使用方法

    Selenium是一套 Web 网站的程序自动化操作解决方案,广泛应用于自动化测试及爬虫。此篇文章主要介绍 Selenium 的 安装和基本使用流程。 Selenium 框架的安装主要就是安装两样东西: Selenium 客户端库 和 浏览器驱动 。 1.1、Selenium 框架安装 使用 pip 命令安装 pip install selenium ,安装

    2023年04月13日
    浏览(62)
  • Python selenium驱动下载,模块安装以及基本使用

    视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 我们以谷歌浏览器为例讲解。首先我们要去下载谷歌浏览器驱动。 谷歌浏览器驱动下载地址:Chromium History Versions Download ↓ 查看谷歌浏览器版本 右上角三个点 - 帮助 - 关于 我们下载解压后的驱动,

    2024年02月06日
    浏览(55)
  • python Web自动化之Selenium的基本使用

    1.selenium介绍 概述 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 优势 开源软件:源代码开放,可根据需要来增加工具的某些功能; 跨平台:linux、windows、mac; 多语言:支持Java、Python、C#、JavaScript、Ruby等。 WebDriv

    2023年04月08日
    浏览(42)
  • 【Python从入门到进阶】38、selenium关于Chrome handless的基本使用

    接上篇《37、selenium关于phantomjs的基本使用》 上一篇我们介绍了有关phantomjs的相关知识,但由于selenium已经放弃PhantomJS,本篇我们来学习Chrome的无头版浏览器Chrome Handless的使用。 一、Chrome Headless简介 Chrome Headless是一个无界面的浏览器环境,它是Google Chrome浏览器在59版本之后新

    2024年02月06日
    浏览(49)
  • Python的selenium闪退和谷歌浏览器版本或驱动不兼容问题解决方法以及基本配置语法(Selenium和Google版本及GoogleDriver版本对应)

    Python的selenium库有各种的版本,谷歌浏览器也有各种版本和驱动,在这里就是下载一个专门为了应用selenium自动化下载的驱动和谷歌版本。 这个网页就是下载的 ===谷歌浏览器和对应驱动下载地址 1.去到网页选择对应的版本 如果你是Mac系统就选Mac,如果是Linux就选Linux,我这里

    2024年02月04日
    浏览(53)
  • Python中Selenium模块的使用详解

    Selenium的介绍、配置和调用 Selenium(浏览器自动化测试框架)  是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试浏览器的兼

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包