用于捕获web应用程序或页面截图的python库
screamshot的Python项目详细描述
尖叫声
用于捕获Web应用程序截图的Python库
良好实践
- 任何代码添加都必须在您自己的分支中完成你可以把它命名为
fl/what_this_branch_brings
,其中“f”是你名字的第一个字母,“l”是你名字的第一个字母。 - 分支解决特定问题。
- 请写详尽的测试。保险范围不能减少
- 请将主分支合并到您的分支中,运行测试和检查,并在推送代码之前更正所有错误和警告。
- 当你认为你已经完成了你可以提出一个拉请求。
测试和检查
开始测试和检查
第一次
- 安装docker和docker compose。
- 运行:
docker-compose build
,以创建所有必需的映像。 - 要开始验证,请运行:
docker-compose up
。
当它已经设置好时
docker-compose build
,以创建所有必需的映像。docker-compose up
。你只需要运行docker-compose up
。
清理
- 如果要停止容器并删除由up命令创建的容器、网络、卷和图像,请运行:
docker-compose down
。 - 如果要删除所有图像,请运行:
docker rmi -f $(docker images -q)
。
编写新测试
- 您必须使用
unittest
包 - 您必须将测试文件放入tests文件夹
- 您必须使用下面的模式命名测试文件:test*.py
本地服务器
docker-compose down
。docker rmi -f $(docker images -q)
。unittest
包具有网页的服务器可以在以下地址使用:http://server:5000/index.html和http://server:5000/other.html
用法
文件
文档可在阅读文档时here访问
例如django
必须使用--nothreading和--noreload作为参数来启动服务器。
# views.py in a Django project
from django.http import HttpResponse
import asyncio
from screamshot import generate_bytes_img_prom
def home(request):
loop = asyncio.get_event_loop()
future = asyncio.Future()
asyncio.ensure_future(
generate_bytes_img_prom('https://www.google.fr', future))
loop.run_until_complete(future)
return HttpResponse(future.result(), content_type='image')
或者使用已经包装好的函数
# views.py in a Django project
from django.http import HttpResponse
from screamshot import generate_bytes_img__django_wrap
def home(request):
img = generate_bytes_img__django_wrap('https://www.google.fr')
return HttpResponse(img, content_type='image')
使用Gunicorn
使用Gunicorn不存在与线程相关的问题,因此我们不需要使用--nothreading和--noreload参数。
更改日志
0.0.1
尖叫声库的初始化
- init文件:
- 作者
- 版本
- all
- 核心文件:
- 有三种方法的
ScreenShot
对象:load
,加载网页screamshot
,截取加载页的屏幕快照load_and_screamshot
,加载网页并截图
- 有三种方法的
0.1.0
- 不再有
ScreenShot
对象,只有一个名为generate_bytes_img
的函数 获取一些参数并返回二进制bytes
对象。
0.1.1
generate_bytes_img
不再是同步函数,已添加generate_bytes_img_prom
generate_bytes_img_prom
使用asyncio.Future
对象
0.1.2
- 使用Docker的测试和验证工具现在可用
0.1.3条
- 添加
browser-manager
脚本 - 添加
screamshot
脚本
0.1.4
- 添加
serialize
函数 - 添加
deserialize
函数
0.1.5
- 添加
generate_bytes_img_django_wrap
函数
0.1.6
- 模块现在可用
0.1.7
- 浏览器端点保存在临时目录中
0.1.8
serialize
函数返回一个dict
对象deserialize
接受一个dict
对象
0.1.9
- 删除序列化程序函数
- 向img函数添加字节
0.1.10
generate_bytes_img_django_wrap
重命名为generate_bytes_img_wrap
- 处理错误
0.1.11
bytes_to_png
重命名为bytes_to_file
bytes_to_file
支持类型选择
0.1.12条
- 现在您可以使用
get_token
从另一个页面获取http头
- 并将这些头存储在本地存储中