网页视频抓取脚本( 编程语言python使用方案:selenium+phantomjs方案介绍实现自动预览)

优采云 发布时间: 2021-11-11 01:14

  网页视频抓取脚本(

编程语言python使用方案:selenium+phantomjs方案介绍实现自动预览)

  Python中网页自动截图示例说明

  更新时间:2018-05-17 14:43:38 作者:test_2016

  今天小编就给大家分享一个如何用Python实现网页自动截图的样例讲解。跟着小编一起来看看吧

  背景介绍

  最近在为部门写一个自动化测试工具。该工具涉及一个功能,就是将自动化测试生成的html报告截图作为邮件正文,将html文件上传到web服务器,并以链接的形式添加到邮件中,最后发送电子邮件。

  任务难度

  页面自动截图的相关方面我之前没有接触过,所以如何自动截图页面成为本地研究的方向。

  计划思维

  刚接到这个任务的时候,我并不认同现在的计划。曾经有人认为,通过将html报告的内容写入邮件正文中,可以将邮件以html的形式发送。尝试后,我发现电子邮件不支持带有javascript的html。因此,选择了预览html和自动截屏的选项。

  编程语言

  蟒蛇2.7

  使用计划:

  硒 + phantomjs

  一个介绍

  自动预览html和截图有几个步骤:

  1. 浏览器打开html

  2. 浏览器页面截图

  3. 截图保存到指定位置

  最初,作者使用了这个实现方案:

  (1)。使用webbrowser库打开默认浏览器,显示url

  

  (2).使用PIL.ImageGrab库对屏幕截图

  

  至此,笔者已经拿到了html预览截图,看起来一切顺利,但是接下来

  发现了以下问题:

  (1)。当你打开默认浏览器时,你不知道默认浏览器是什么,浏览器处于什么状态。

  (2)。浏览器显示html时,会有一个显示打开浏览器,浏览器打开html动作。如果用户此时有其他动作,肯定会影响后续的截图。

  (3).截屏,截取整个屏幕。截图中除了html页面主体外,还收录当前屏幕所收录的浏览器等所有元素,暴露用户隐私。

  (4)。如果页面很大,页面会有上下翻页的效果,截图无法应对这种页面,截图只能看到部分报告。

  基于以上问题,笔者放弃了这个看似简单有效的解决方案。从而

  为该计划挖掘了一些深层次的要求:

  (1)。打开浏览器必须隐式调用,用户看不到工具在做什么,以免误操作影响工具。

  (2)。截图必须针对浏览器页面主体,保证没有其他多余信息,截取页面全图。根据这些要求,作者终于发现了selenium + phantomjs 经过一系列尝试。

  python selenium:Python 是 selenium 的扩展,selenium 是一个浏览器自动化测试框架。selenium 库支持 selenium 中收录的大部分功能。

  phantomjs:它是一个无接口、可编写脚本的 webkit 浏览器,python selenium 也提供了对 phantomjs 的支持。

  接下来一切都很简单:

  (1).安装python selenium库,建议使用pip快速安装最新版本

  (2)。下载phantomjs.exe,添加到环境变量路径中,为了方便,可以直接放在python安装目录的根目录下

  (3).写测试代码

  

  简单解释一下代码:

  

fromselenium importwebdriver #从selenium库导入webdirver

brower=webdriver.PhantomJS() #使用webdirver.PhantomJS()方法新建一个phantomjs的对象,这里会使用到phantomjs.exe,环境变量path中找不到phantomjs.exe,则会报错

brower.get(url) #使用get()方法,打开指定页面。注意这里是phantomjs是无界面的,所以不会有任何页面显示

brower.maximize_window() #设置phantomjs浏览器全屏显示

brower.save_screenshot(picName) #使用save_screenshot将浏览器正文部分截图,即使正文本分无法一页显示完全,save_screenshot也可以完全截图

brower.close() #关闭phantomjs浏览器,不要忽略了这一步,否则你会在任务浏览器中发现许多phantomjs进程

  执行完上面的代码,我们来看看截图效果:

  

  以上对网页自动截图的Python实现的示例说明,均为小编分享的内容。希望能给大家一个参考,也希望大家多多支持脚本之家。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线