用于捕获web应用程序或页面截图的python库

screamshot的Python项目详细描述


Build StatusCoverage StatusDocumentation StatusPyPI versionPython version

尖叫声

用于捕获Web应用程序截图的Python库

良好实践

  • 任何代码添加都必须在您自己的分支中完成你可以把它命名为fl/what_this_branch_brings,其中“f”是你名字的第一个字母,“l”是你名字的第一个字母。
  • 分支解决特定问题。
  • 请写详尽的测试。保险范围不能减少
  • 请将主分支合并到您的分支中,运行测试和检查,并在推送代码之前更正所有错误和警告。
  • 当你认为你已经完成了你可以提出一个拉请求。

测试和检查

开始测试和检查

第一次
  1. 安装dockerdocker compose
  2. 运行:docker-compose build,以创建所有必需的映像。
  3. 要开始验证,请运行:docker-compose up

当它已经设置好时

你只需要运行docker-compose up

清理
  • 如果要停止容器并删除由up命令创建的容器、网络、卷和图像,请运行:docker-compose down
  • 如果要删除所有图像,请运行:docker rmi -f $(docker images -q)

编写新测试

  • 您必须使用unittest
  • 您必须将测试文件放入tests文件夹
  • 您必须使用下面的模式命名测试文件:test*.py

本地服务器

具有网页的服务器可以在以下地址使用:http://server:5000/index.htmlhttp://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

尖叫声库的初始化

  1. init文件:
    • 作者
    • 版本
    • all
  2. 核心文件:
    • 有三种方法的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头
  • 并将这些头存储在本地存储中

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧