需求

对网页截图,包括网页的不可视部分。

方法

1.Firefox webdriver,无头模式+调整窗口宽高+截图窗口

options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Firefox(options=options)
S = lambda X:driver.execute_script('return document.body.parentNode.scroll' + X)
driver.set_window_size(1366, S('Height'))
driver.save_screenshot('test.png')

2.针对已知元素id的元素截图,可以直接截图元素全部内容

# 例如微信公众号文章可以用以下方法截取文章内容(需要已知元素id)
driver.find_element_by_id('img-content').screenshot('tt.png')

上面2个方法的优点是实现简单。缺点是方法1的图片分辨率和质量一般,需要自行调整,消耗资源一般。
具体实现可参考网上已有的:https://github.com/auv1107/PythonSpiderLibs/blob/master/WebDriverLib.py

3. 其他未验证的方法,曲线救国
  1. html转canvas截图,Firefox自带的截图插件使用的就是这种方法
  • 注入第三方html转canvas的js库
  • 获取元素html源码
  • 将html转换为canvas:http://html2canvas.hertzen.com/documentation.html
  • 下载canvas
  1. PIL裁剪拼接
    每次截图当前可视窗口,再依次拼接起来。可参考:https://www.cnblogs.com/superhin/p/11482188.html
    缺点:有悬浮导航tab时会在拼接后的图片上保留多个悬浮导航,且窗口位置需要自行调试测试,可能有错位,速度一般。
  2. Firefox改为phantomJs驱动,可直接截图整个窗口和元素
    不是可视化的浏览器,类似于Firefox的无头模式,且phantomJs不更新了,不推荐。
  3. 去掉干扰元素单独截取某个元素的图片
    网上有人说选取元素进行截图遇到bug,所以用了替代方案即去掉干扰元素再截图全屏,会有很多多余空白,不推荐。

python selenium+firefox对网页截长图相关推荐

  1. python+selenium+webdriver 截取全页面长图

    有的时候我们要截取整个页面,而不是当前的屏幕. python+selenium+webdriver 截取全页面长图: from selenium import webdriver import tim ...

  2. java使用Chrome+Selenium+Screenshot 实现浏览器截长图

    场景:需要长截图整个网站; 效果: 我进行了缩小和模糊处理,涉及到公司业务.模糊的可以看到是忽略了浏览器的头部,保留了完整的整个网页 解决思路: 模拟用户打开浏览器,然后截图,这边涉及到几个问题 浏览 ...

  3. 谷歌浏览器怎么截长图?

    我们在使用电脑浏览网页的时候难免会需要进行一些长图的截取,而一般的截图只能实现一部分截取,那么我们要如何去实现这个操作呢?下面小编就给大家介绍一下怎么在谷歌浏览器上截长图的操作. 谷歌浏览器网页截长图 ...

  4. python selenium截图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)...

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

  5. Python+Selenium+phantomjs实现网页模拟登录和截图

    Python+Selenium+phantomjs实现网页模拟登录和截图 本文全部操作均在windows环境下 安装 Python Python是一种跨平台的计算机程序设计语言,它可以运行在Windo ...

  6. 谷歌浏览器怎么长截图怎么截_chrome长截图如何操作_chrome怎么滚动截长图-win7之家...

    在使用chrome浏览器搜索网页的时候,常常会遇到一些篇幅较大的文章,这时有些用户可能不想要通过收藏网址将其保存下来的时候就可以通过截取长图的方式保存自己想要的部分,那么chrome怎么滚动截长图呢? ...

  7. 截屏、录屏、截长图快捷键汇总

    文章目录 windows自带 qq自带 截长图 snipaste 小知识: 相关链接   工作生活中,我们经常要用到截图功能.如果不想安装截图工具,你可以用以下方式: windows自带 最快速,但是 ...

  8. 浏览器怎么截长图?怎么使用浏览器截长图?

    我们在使用电脑浏览网页的时候有可能会想截取整篇网页,由于页面在电脑上显示不全,阅读的时候都需要滚动条来看,直接截屏根本截不全整个网页,这时候就需要截取网页的长截图了,那么怎么使用浏览器截长图呢? 1. ...

  9. Chrome浏览器自带截长图功能,只需两个快捷键!

    截图大家都会,微信截图,或者下载截图工具Snipaste.PicPick等都可以实现.但如果要截取当前浏览器的整个页面呢?可能需要下载专门截长图的工具,比如FastStone Capture.今天要说 ...

  10. Android 实现截屏和截长图功能的几种方法

    欢迎大家关注我的公众号:**牛角尖尖上起舞** 一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区 ...

最新文章

  1. debian10 更换阿里源
  2. 深度学习模型压缩与加速综述!
  3. python的六种基本数据类型_python的6种基本数据类型--字典
  4. 第十五届全国大学生智能车全国总决赛获奖信息-华南赛区
  5. 论文排版之公式居中、编号右对齐
  6. cocos2d-x 弹出对话框
  7. maven配置阿里云镜像后Eclipse不生效解决办法
  8. linux centos根据工具查找所在软件包命令:yum provides */nslookup
  9. 运营体系_用户运营系统论:解构复杂产品的大规模用户运营体系
  10. Print! Print! Print!
  11. .NET Core Run On Docker By Kubernetes 系列文章汇总
  12. 计算机系答辩麻烦,计算机专业的你,答辩时有多卑微?
  13. React 第十二章 React思想
  14. Maven阿里云与本地仓库配置
  15. 判断链表是否存在环 Linked List Cycle
  16. acm运行时错误_计人即讯|ACM纳新赛
  17. 利用CSF算法实现地面点云的粗分割
  18. 5G端到端时延要求1ms是个什么概念?
  19. request:fail -202:net::ERR_CERT_AUTHORI
  20. SpringBoot 项目文件上传过大报错不返回解决方案

热门文章

  1. 网易云精选评论,总有一句戳在你心里
  2. Java报表导出有哪些技术_报表工具能实现怎么的导出效果?
  3. python股票回测_用Python徒手撸一个股票回测框架搭建【推荐】
  4. 日本CKD电磁阀、CKD、电磁阀、CKD电磁阀
  5. openwrt 格式化_如何在路由器上格式化 U 盘、硬盘
  6. Win10应用商店和UWP应用无法连接网络解决方法
  7. 老电脑换Linux系统是否会更快,旧电脑不要装Windows!Bodhi Linux系统,小巧强悍,运行更流畅...
  8. 电子邮件服务器传输到电子邮件客户端,6.3.4 电子邮件客户端和服务器
  9. 华东师范 2018年 研究生复试上机题解合集
  10. 白杨SEO:推广与运营有什么区别和相同?推广如何转运营?