Python爬虫之selenium库驱动浏览器

发布于:2024-12-07 ⋅ 阅读:(161) ⋅ 点赞:(0)

目录

一、简介

二、使用selenium库前的准备

1、了解selenium库驱动浏览器的原理

(1)、WebDriver 协议

(2)、 浏览器驱动(Browser Driver)

(3)、 Selenium 客户端库

(4)、 工作流程

(5)、 跨浏览器支持

(6)、 自动化测试

2、安装WebDriver

 安装步骤(以谷歌浏览器为例)

(1)、查看自己的浏览器版本

 (2)、进入chromedriver下载地址

(3)、 把解压后的Chromedriver.exe文件拷贝到python安装目录的Scripts目录下

3、安装selenium库

(1)、在命令提示符窗口或终端执行以下的命令

(2)、安装完成后使用以下命令查看库的信息

三、使用selenium驱动浏览器

四、总结


一、简介

selenium库是一种用于用于Web应用程序测试的工具,它可以驱动浏览器执行特定操作,自动按照脚本代码做出单击、输入、打开、验证等操作,支持的浏览器包括IE、Firefox、Safari、Chrome、Opera等。与requests库不同的是,selenium库是基于浏览器的驱动程序来驱动浏览器执行操作的。且浏览器可以实现网页源代码的渲染,因此通过selenium库还可以轻松获取网页中渲染后的数据信息。

二、使用selenium库前的准备

1、了解selenium库驱动浏览器的原理

(1)、WebDriver 协议

Selenium 使用 WebDriver 协议与浏览器进行通信。WebDriver 是一个基于 HTTP 的协议,定义了与浏览器交互的命令和响应格式。每个浏览器(如Chrome、Firefox、Safari等)都有自己的 WebDriver 实现(如ChromeDriver、GeckoDriver等),这些实现负责将 WebDriver 命令转换为浏览器能够理解的指令。

(2)、 浏览器驱动(Browser Driver)

浏览器驱动是一个独立的可执行文件,它充当浏览器和 Selenium 之间的桥梁。每个浏览器都有对应的驱动程序:

  • ChromeDriver:用于控制 Google Chrome 浏览器。

  • GeckoDriver:用于控制 Mozilla Firefox 浏览器。

  • SafariDriver:用于控制 Apple Safari 浏览器。

  • EdgeDriver:用于控制 Microsoft Edge 浏览器。

浏览器驱动程序会启动一个本地服务器,监听来自 Selenium 的请求,并将这些请求转换为浏览器能够执行的操作。

(3)、 Selenium 客户端库

Selenium 客户端库(如 selenium Python 库)提供了编程接口,允许开发者通过代码发送 WebDriver 命令。开发者可以使用这些库来编写脚本,控制浏览器执行各种操作,如打开网页、点击按钮、填写表单等。

(4)、 工作流程

以下是 Selenium 驱动浏览器的基本工作流程:

  1. 启动浏览器驱动:Selenium 客户端库会启动浏览器驱动程序(如 ChromeDriver),并建立一个连接。

  2. 创建浏览器实例:通过 WebDriver 协议,Selenium 客户端库会请求浏览器驱动创建一个新的浏览器实例。

  3. 发送命令:开发者通过 Selenium 客户端库发送各种 WebDriver 命令(如 driver.get("https://example.com")),浏览器驱动会将这些命令转换为浏览器能够执行的操作。

  4. 执行操作:浏览器执行相应的操作,如加载网页、点击按钮等。

  5. 获取结果:浏览器将执行结果返回给浏览器驱动,浏览器驱动再将结果返回给 Selenium 客户端库。

  6. 关闭浏览器:操作完成后,开发者可以关闭浏览器实例。

(5)、 跨浏览器支持

Selenium 的一个主要优势是它支持多种浏览器。开发者可以通过配置不同的浏览器驱动来实现跨浏览器测试。例如,使用 webdriver.Chrome() 可以控制 Chrome 浏览器,使用 webdriver.Firefox() 可以控制 Firefox 浏览器。

(6)、 自动化测试

Selenium 广泛用于自动化测试,特别是在 Web 应用程序的端到端测试中。通过编写脚本,开发者可以模拟用户在浏览器中的操作,验证应用程序的功能和性能。

2、安装WebDriver

选择使用的组合,以下三种方式安装一组即可

  • selenium + PhantomJS
  • selenium + chromedriver + Chrome
  • selenium + geckodriver + Firefox

火狐浏览器或者谷歌浏览器需要额外下载浏览器驱动器  

下载地址

chromedriver:CNPM Binaries Mirroricon-default.png?t=O83Ahttps://registry.npmmirror.com/binary.html?path=chrome-for-testing/

geckodriver:https://github.com/mozilla/geckodrive/releasesicon-default.png?t=O83Ahttps://github.com/mozilla/geckodrive/releases

PhantomJS:https://phantomjs.org/downloqd.htmlicon-default.png?t=O83Ahttps://phantomjs.org/downloqd.html  

 安装步骤(以谷歌浏览器为例)
(1)、查看自己的浏览器版本

点击浏览器右上角三个圆点-->帮助-->关于Google Chrome

 (2)、进入chromedriver下载地址

选择一个和自己浏览器版本比较近的(相同或略高于)

 

(3)、 把解压后的Chromedriver.exe文件拷贝到python安装目录的Scripts目录下

3、安装selenium库

(1)、在命令提示符窗口或终端执行以下的命令
pip install selenium
(2)、安装完成后使用以下命令查看库的信息
pip show selenium

三、使用selenium驱动浏览器

from selenium import webdriver
import time

# 创建浏览器对象
brow = webdriver.Chrome()
# 输入要访问的地址
brow.get('http://www.baidu.com/')
time.sleep(10)
# 关闭浏览器
brow.quit()

 

四、总结

Selenium 是一个功能强大且灵活的工具,适用于各种Web自动化需求。无论是用于测试、抓取数据,还是自动化日常任务,Selenium 都能提供强大的支持。

 


网站公告

今日签到

点亮在社区的每一天
去签到