首页 > 编程语言 >【python模块】Selenium

【python模块】Selenium

时间:2024-07-20 11:59:19浏览次数:15  
标签:浏览器 get python driver 元素 Selenium 模块 页面

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。

文章目录


Selenium库

Selenium库是一个强大的Web自动化工具,允许开发者通过编写脚本来控制浏览器,实现网页的自动测试和数据抓取。它提供了WebDriver接口,支持多种浏览器,如Chrome、Firefox等。使用Selenium,可以模拟用户行为,如点击、输入、导航等,适用于自动化测试、爬虫开发等多种场景。

功能介绍

Selenium库提供了丰富的方法来模拟用户与浏览器的交互。以下是一些常用的Selenium WebDriver方法的介绍:

  1. 初始化WebDriver:

    • webdriver.BrowserName(): 创建一个特定浏览器的WebDriver实例。
  2. 导航:

    • get(url): 加载指定的URL。
    • back(): 后退到浏览器历史记录中的上一个页面。
    • forward(): 前进到浏览器历史记录中的下一个页面。
    • refresh(): 刷新当前页面。
  3. 元素定位:

    • find_element(By.定位方式, 值): 查找页面上第一个匹配的元素。
    • find_elements(By.定位方式, 值): 查找页面上所有匹配的元素。
  4. 元素交互:

    • click(): 点击元素。
    • clear(): 清除输入字段的内容。
    • send_keys(*value): 向输入字段发送键序列。
    • submit(): 提交表单。
  5. 获取元素信息:

    • get_attribute(name): 获取元素的属性值。
    • text: 获取元素的文本内容。
    • tag_name: 获取元素的标签名。
    • is_displayed(): 检查元素是否可见。
    • is_enabled(): 检查元素是否启用。
  6. 等待:

    • implicitly_wait(seconds): 设置隐式等待时间,用于等待页面元素加载。
    • WebDriverWait(driver, timeout).until(condition): 显式等待,直到某个条件成立。
  7. 窗口和框架:

    • switch_to.window(name): 切换到指定名称的窗口。
    • switch_to.frame(element): 切换到指定的iframe。
  8. 执行JavaScript:

    • execute_script(script): 在当前页面执行JavaScript代码。
  9. 浏览器操作:

    • close(): 关闭当前窗口。
    • quit(): 关闭所有窗口并结束WebDriver会话。
  10. 截图:

    • get_screenshot_as_file(filename): 将当前页面截图保存为文件。
    • get_screenshot_as_png(): 获取当前页面的截图数据。
  11. Cookies操作:

    • add_cookie(cookie_dict): 添加一个cookie。
    • delete_cookie(name): 删除指定名称的cookie。
    • delete_all_cookies(): 删除所有cookies。
  12. 浏览器设置:

    • set_page_load_timeout(time_to_wait): 设置页面加载超时时间。
    • set_script_timeout(time_to_wait): 设置脚本执行超时时间。

这些方法覆盖了从浏览器启动、页面导航、元素交互到浏览器关闭的整个流程,为自动化测试和网页自动化提供了强大的支持。

环境准备

  • 安装Python。
  • 安装Selenium库:pip install selenium
  • 下载对应浏览器的WebDriver。
    查看浏览器版本:edge://version/
    在这里插入图片描述
    如图,我的版本为:126.0.2592.87 (正式版本) (64 位)
    驱动下载地址:https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/
    在这里插入图片描述
    将其解压到python解释器目录并重命名为MicrosoftWebDriver.exe
    输入cmd命令:py -0p
    在这里插入图片描述

示例代码

抓取并展示指定网页上的所有链接信息

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Edge()

# 打开目标网页
driver.get('https://movie.douban.com/top250')

# 获取网页上所有的链接元素
links = driver.find_elements(By.TAG_NAME, 'a')

# 遍历链接,打印链接的文本和href属性
for link in links:
    print(f"链接文本: {link.text}")
    print(f"链接地址: {link.get_attribute('href')}\n")

# 关闭浏览器
driver.quit()
  1. 导入了selenium模块的webdriver和By子模块。
  2. 创建了一个Edge浏览器实例。
  3. 通过driver.get方法打开了豆瓣电影Top250的网页。
  4. 使用find_elements方法查找网页上所有的链接元素,并将其存储在links列表中。
  5. 通过遍历links列表,打印出每个链接的文本和href属性。
  6. 通过driver.quit方法关闭了浏览器。

在这里插入图片描述
抓取到了全部链接。


浮萍漂泊本无根,天涯游子君莫问。

标签:浏览器,get,python,driver,元素,Selenium,模块,页面
From: https://blog.csdn.net/LongL_GuYu/article/details/140289802

相关文章

  • 深入理解与高效操作Python中的字节流(bytes)与字节数组(bytearray)
    深入理解与高效操作Python中的字节流(bytes)与字节数组(bytearray)在Python编程中,处理字节流(bytes)和字节数组(bytearray)是常见的需求,尤其是在处理网络通信、文件I/O、以及需要直接与硬件交互的场景中。理解这两种数据类型的特性及它们之间的区别,并掌握高效的操作方法,对于提升程......
  • Python中的`@property`装饰器:深入解析与实战应用
    Python中的@property装饰器:深入解析与实战应用在Python中,@property装饰器是一种强大的工具,它允许类的方法被当作属性来访问。这一特性极大地增强了类的封装性和易用性,使得类的外部使用者可以像访问普通属性一样访问由方法计算或处理过的数据,而无需直接调用这些方法。本文将......
  • 【python模块】Http.client
    文章目录Http.client介绍基本用法高级用法Http.client介绍http.client是Python标准库中的一个模块,它提供了一个低级别的接口来发送HTTP请求和接收响应。这个模块主要针对HTTP协议的实现,并且可以用于创建更复杂的HTTP客户端。基本用法http.client模块允......
  • java Selenium,定位 伪元素.UI自动化
    Java中,要获取这个表单字段前面的星号“*”,因为是用的伪元素,无法直接通过常规定位获取字符,需要用到JavascriptExecutor。importorg.openqa.selenium.By;importorg.openqa.selenium.JavascriptExecutor;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.We......
  • MDS130-16-ASEMI整流模块MDS130-16
    编辑:llMDS130-16-ASEMI整流模块MDS130-16型号:MDS130-16品牌:ASEMI封装:MDS批号:2024+分类:整流模块特性:整流模块、整流桥平均正向整流电流(Id):130A最大反向击穿电压(VRM):1600V恢复时间:>2000ns结温:-40℃~150℃正向峰值电压:1.05V~1.25V引脚数量:5芯片个数:6芯片尺寸:MILMDS130-1......
  • 掌握Python中的文件序列化:Json和Pickle模块解析
    Python文件操作与管理:Open函数、Json与Pickle、Os模块在Python中,文件是一个重要的数据处理对象。无论是读取数据、保存数据还是进行数据处理,文件操作都是Python编程中不可或缺的一部分。本文将详细介绍Python中文件操作的几种常用方法,包括open函数的使用、数据序列化与反......
  • PYTHON学习笔记(六、python数据结构--字典)
    (3)dict字典字典数据类型的含义是:根据一个信息查找另一个信息的方式构成了“键值对”,它表示索引用的键和对应的值构成对应的关系。1、字典的创建方式1)使用{ }直接创建字典使用{ }创建字典的语法结构如下:d={key1:value1,key2:value2......}例如:#使用{}创建字典d=......
  • 前端模块化
    前端模块化将逻辑代码拆分成独立的块,各自封装,互相独立前端模块化的目的:使代码更易于维护,测试和重构。提升代码的可复用性和开发效率目前流行的js模块化规范:CommonJS,AMD,CMD,ES6模块化ES6是静态加载,其他都是动态加载1、CommonJSCommonJS用同步的方式加载模块,适用于服务端编程......
  • Python 爬虫技术 第01节 引言
    引言网络爬虫的概念和重要性网络爬虫(WebCrawler),也称为网络蜘蛛(WebSpider)或机器人(Bot),是一种自动浏览互联网并收集信息的程序。它们按照一定的规则,从一个网页链接到另一个网页,遍历整个网络,抓取所需的数据或信息。网络爬虫是搜索引擎、数据分析、市场研究、新闻聚合、学术......
  • 【JS逆向课件:第七课:模块与包】
    模块与包模块模块介绍在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。而这样的一......