Python使用selenium+PIL实现网页长屏截图

  • 代码如下:

代码如下:

import glob
import os
import timeimport numpy
from PIL import Image
from selenium import webdriverclass ScreenLongShot(object):def __init__(self, url):self.get_img = "result.png"self.driver = webdriver.Chrome()self.driver.maximize_window()self.page = urldef get_height(self):# 获取谷歌浏览器的高度以及网页的高度chrome_height = self.driver.get_window_size()["height"]page_height = self.driver.execute_script('return document.documentElement.scrollHeight')return chrome_height, page_heightdef scree_shot(self):try:self.driver.get(self.page)self.driver.implicitly_wait(10)chrome_height, page_height = self.get_height()temp_img = "tmp.png"self.driver.save_screenshot(temp_img)"""取余网页高度和谷歌浏览器高度的余数来判断滚动几次鼠标"""if page_height > chrome_height:n = page_height // chrome_heightbase_mat = numpy.atleast_2d(Image.open(temp_img))for i in range(n):"""每滚动一次鼠标就截图一次"""self.driver.execute_script(f'document.documentElement.scrollTop={chrome_height * (i + 1)};')time.sleep(.5)self.driver.save_screenshot(f'tmp_{i}.png')mat = numpy.atleast_2d(Image.open(f'tmp_{i}.png'))base_mat = numpy.append(base_mat, mat, axis=0)Image.fromarray(base_mat).save(self.get_img)except Exception as e:print(e)finally:"""删除执行中间的缓存图片"""for i in glob.glob(os.path.join(os.getcwd(), 'tmp*.png')):os.remove(i)def close_chrome(self):self.driver.quit()def main():page = "https://www.aliyun.com/"s = ScreenLongShot(page)try:s.scree_shot()except Exception as e:print(e)if __name__ == '__main__':main()

Python使用selenium+PIL实现网页长屏截图相关推荐

  1. python和selenium爬虫,网页表格下载自动化脚本

    一.selenium是啥 框架底层使用JavaScript模拟真实用户对浏览器进行操作.测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度 ...

  2. Python selenium PIL 全网页滚动截屏 headless全网页截屏

    思路 ​ 先截取当前屏幕的图片,获取其高度作为base高度 h,再获取全网页body到尾部的高度 H ,循环截取图片,再通过PIL进行拼接. 代码 # -*- coding:utf-8 -*- # a ...

  3. python用selenium爬取网页数据_Python项目实战:使用selenium爬取拉勾网数据

    " 一切不经过项目验证的代码都是耍流氓,今天我们就通过一个简单的招聘网站的数据归档进行当前热门岗位的大数据分析,最后以wordcloud进行显示.本文为数据爬取篇." 项目准备: ...

  4. python用selenium 验证码图片_selenium实现定位截图----获取验证码图片

    获取验证码的步骤: 浏览器最大化,截取整个网页,并保存 定位验证码(通过id或class元素实现定位) 获取验证码的x,y坐标轴,以及长宽,形成我们需要获取的位置坐标 打开之前保存的网页截图,从中截取 ...

  5. python 基于selenium的IP摄像头 网页按键PTZ控制 (2) 登录-松下摄像头的弹框登录方式

    本文章仅用于记录个人学习内容(因为是验证式学习,所以代码基本是Ctrl C,Ctrl V ) 若有侵权请联系! 本文章涉及到的代码和参考资料如下:                           ...

  6. python实现网页长截图

    python实现网页长截图 实现思路 使用工具和第三方库 参考内容网址 具体代码案例 实现思路 获取到所需内容 截图.移动.截图.移动- 拼接 使用工具和第三方库 Python.Pycharm PIL ...

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

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

  8. Selenium Chrome/Firefox webdriver实现截取网页长图的方法

    Selenium Chrome/Firefox webdriver实现截取网页长图的方法 最近在测试使用Selenium+Firefox webdriver来对网页整体截图,由PhantomJS不再更 ...

  9. python爬取js动态网页_Python 从零开始爬虫(八)——动态爬取解决方案 之 selenium

    selenium--自动化测试工具,专门为Web应用程序编写的一个验收测试工具,测试其兼容性,功能什么的.然而让虫师们垂涎的并不是以上的种种,而是其通过驱动浏览器获得的解析JavaScript的能力. ...

  10. 【避坑 超详细】Ubuntu使用python的selenium以及chrome模拟真实浏览器访问网页

    在Ubuntu系统上使用python的selenium,另外加上chrome和chromedriver,用于模拟浏览器访问网页. 下面教程在阿里云的Ubuntu 14.04 64位测试成功,其他lin ...

最新文章

  1. java spring框架 注解_史上最全的java spring注解
  2. 【前沿技术】严重事故!实习生删除字节跳动所有轻量级机器学习模型
  3. eclipse安装反编译插件jd-eclipse
  4. 企业数据中心夏季冷却散热的十二大技巧
  5. ubuntu导出数据库
  6. 【HNOI2013】数列
  7. 【JVM】类的生命周期【转+整理】
  8. 获取脚本路径_如何快速有效的写ftp脚本
  9. 40元老年机摇身一变成“华为”手机:半年卖了7000多台?
  10. FISCO BCOS 构造交易体 使用WeBASE-Front组装交易、提交交易
  11. 微软官方出的各种dll丢失的修复工具
  12. Word2013出现未响应的解决方法
  13. Java 断点续传以及在线视频播放可选择任一时间播放原理
  14. 在深度学习中使用Bagging集成模型
  15. 不羁野草挑战遗传法则
  16. 4只鸭子在同一个圆圈内游泳,问:4只鸭子出现在同一个半圆内的概率是多少?Python模拟
  17. idea快捷键 常用
  18. C# 调用NationalInstruments的dll报错问题 未能加载文件或程序集
  19. 如何使用bootstrap框架
  20. glut linux 安装包,linux 下glut.h使用

热门文章

  1. 理解图像处理中的 双线性内插法(图文说明)
  2. oracle数据库:阿拉伯数字转中文:如367转成:三百六十七
  3. WiFi 中继/桥接功能 — 基于OpenWRT路由器
  4. 自来水供水收费管理系统
  5. 考研:研究生考试(十五天学完)之《高等数学-上册/下册》研究生学霸重点知识点总结之目录(函数与极限、导数与微分、微分中值定理与导数、不定积分、定积分及其应用、微分方程、空间解析几何与向量代数、多元函数
  6. android最新仿微信表情面板,Android高仿微信表情输入与键盘输入详解
  7. 常见入门级显卡性能分析及对比(不定期更新)
  8. Mirth Connect 第二章 什么是通道?
  9. 加密狗映射至虚拟服务器,XenServer6.x U盘、加密狗等USB设备映射到VM虚拟机教程.pdf...
  10. scratch3.0接苹果小游戏