首页 > 其他分享 >selenium

selenium

时间:2024-02-17 22:46:42浏览次数:23  
标签:webdriver 浏览器 selenium driver chromedriver path

1、概要

  本阶段课程主要学习selenium自动化测试框架在爬虫中的应用,selenium能够大幅降低爬虫的编写难度,但是也同样会大幅降低爬虫的爬取速度。在逼不得已的情况下我们可以使用 selenium进行爬虫的编写。

2、

  Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来看一下selenium的运行效果

  

2.1 chrome浏览器的运行效果

在下载好chromedriver以及安装好selenium模块后,执行下列代码并观察运行的过程

from selenium import webdriver 

# 如果driver没有添加到了环境变量,则需要将driver的绝对路径赋值给executable_path参数
# driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')

# 如果driver添加了环境变量则不需要设置executable_path
driver = webdriver.Chrome()

# 向一个url发起请求
driver.get("http://www.itcast.cn/")

# 把网页保存为图片,69版本以上的谷歌浏览器将无法使用截图功能
# driver.save_screenshot("itcast.png")

print(driver.title) # 打印页面的标题

# 退出模拟浏览器
driver.quit() # 一定要退出!不退出会有残留进程!


2.2 phantomjs无界面浏览器的运行效果

PhantomJS 是一个基于Webkit的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的 JavaScript。下载地址:http://phantomjs.org/download.html

from selenium import webdriver 

# 指定driver的绝对路径
driver = webdriver.PhantomJS(executable_path='/home/worker/Desktop/driver/phantomjs') 
# driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')

# 向一个url发起请求
driver.get("http://www.itcast.cn/")

# 把网页保存为图片
driver.save_screenshot("itcast.png")

# 退出模拟浏览器
driver.quit() # 一定要退出!不退出会有残留进程!

2.3 观察运行效果

  • python代码能够自动的调用谷歌浏览或phantomjs无界面浏览器,控制其自动访问网站

2.4 无头浏览器与有头浏览器的使用场景

  • 通常在开发过程中我们需要查看运行过程中的各种情况所以通常使用有头浏览器
  • 在项目完成进行部署的时候,通常平台采用的系统都是服务器版的操作系统,服务器版的操作系统必须使用无头浏览器才能正常运行

3. selenium的作用和工作原理

利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)

 

  • webdriver本质是一个web-server,对外提供webapi,其中封装了浏览器的各种功能
  • 不同的浏览器使用各自不同的webdriver

3. selenium的安装以及简单使用

我们以谷歌浏览器的chromedriver为例

3.1 在python虚拟环境中安装selenium模块

pip/pip3 install selenium

3.2 下载版本符合的webdriver

  

以chrome谷歌浏览器为例

  1. 查看谷歌浏览器的版本

  1. 访问https://npm.taobao.org/mirrors/chromedriver,点击进入不同版本的chromedriver下载页面

  1. 点击notes.txt进入版本说明页面

  1. 查看chrome和chromedriver匹配的版本

  1. 根据操作系统下载正确版本的chromedriver

  2. 解压压缩包后获取python代码可以调用的谷歌浏览器的webdriver可执行文件

    • windows为chromedriver.exe

    • linux和macos为chromedriver

  3. chromedriver环境的配置

    • windows环境下需要将 chromedriver.exe 所在的目录设置为path(路径)环境变量中的路径
    • linux/mac环境下,将 chromedriver 所在的目录设置到系统的PATH(路径)环境值中








 

标签:webdriver,浏览器,selenium,driver,chromedriver,path
From: https://www.cnblogs.com/hxy-2732557596/p/18018563

相关文章

  • Selenium
    Python爬取B站(Bilibili.com)UP主的所有视频链接及详细信息Python爬取B站(Bilibili.com)UP主的所有公开视频链接及信息安装selenium安装selenium:condainstallseleniumselenium+Edgeselenium+Edge浏览器在MicrosoftEdgeWebDriver|MicrosoftEdgeDeveloper下载电脑......
  • Selenium 4 新特性
    Selenium4新特性相对定位器to_left_of():位于目标元素左侧的元素to_right_of():位于目标元素右侧的元素above():位于目标元素上方的元素below():位于目标元素下方的元素near():位于目标元素附近(默认50像素以内)的元素示例代码fromseleniumimportwebdriverfromselenium.we......
  • Selenium Grid 高级运用
    SeleniumGrid高级运用SeleniumGrid详细参数配置Hub和Node共有的参数参数分类参数名称取值范围功能启动参数hostIP地址,默认随机分配默认即可启动参数port端口号,默认4444都行启动参数rolehub、node、standalone看当前节点的角色调试参数debug......
  • Selenium Grid 的基本运用
    SeleniumGrid的基本运用配置设置SeleniumGrid基于Java开发的,所以集群的每个节点上都需要安装Java并配置环境变量使用集群的时候访问Hub,然后由Hub来分发至Node节点上来执行任务下载以及安装命令无论是Hub还是Node下载的安装包为selenium-server-standalone-xxx.jarHub配置......
  • Selenium Web Driver的基本运用
    SeleniumWebDriver的基本运用目录SeleniumWebDriver的基本运用浏览器窗口的基本操作浏览器导航操作浏览器窗口操作获取浏览器信息查找页面元素按id查找按name查找按class查找按链接文本查找按链接文本模糊查找按标签类型查找按XPath查找按CSS选择器查找通过By对象按动态条件......
  • 08-selenium
    1.selenium自动化selenium可以操作浏览器,在浏览器页面上实现:点击、输入、滑动等操作。不同于selenium自动化,逆向本质是:分析请求,例如:请求方法、请求参数、加密方式等。用代码模拟请求去实现同等功能。逆向vs自动化SeleniumSelenium,【优】简单不需要逆向,只需要控制浏览......
  • selenium出现“element not interactable”问题总结
    “elementnotinteractable”问题根因:元素不可交互,可能的原因及解决方法如下所示:1、检查元素的定位(XPATH、CSS_SELECTOR内的内容)是否写正确2、代码中元素进行获取的时候查看是否已经加载出来,等待元素加载可以使用显式等待element= WebDriverWait(browser,20,0.5).until(EC.p......
  • Selenium使用
    Selenium的使用一.介绍Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效.本次学习使用Chrome,并配置ChromeDrive,Pyt......
  • Selenium】控制当前已经打开的 chrome浏览器窗口
    Selenium】控制当前已经打开的chrome浏览器窗口前言有过几个小伙伴问过我如何利用 Selenium 获取已经打开的浏览器窗口,这里给安排了,还安排了两篇。这里使用 chrome浏览器 来做示例。整个下来主要有两个步骤,手动打开浏览器,使用 Python程序 去获取到手动打......
  • Selenium自动化测试之python
    1、简介Selenium是一个自动化测试工具,它支持多种浏览器和操作系统,可以模拟真实用户的行为,如点击、输入文本、滚动页面等。Selenium可以在多种编程语言中使用,如Java、Python、C#等。它可以帮助测试人员快速、准确地测试应用程序的功能和性能。Selenium还提供了丰富的API和库,使得测......