Skip to main content

Build Status Coverage Status Documentation Status PyPI version Python version

Screamshot

Python library to capture screenshots of web applications

Good practices

  • Any code addition must be done in your own branch. You can name it fl/what_this_branch_brings where 'f' is the first letter of your first name and 'l' the first letter of your last name.
  • A branch resolves a specific issue.
  • Please write exhaustive tests. The coverage must not decrease.
  • Please merge the master branch into yours, run the tests and checks and correct all errors and warnings before pushing your code.
  • When you think you have finished you can make a pull request.

Testing and checks

To start the tests and checks

The first time

  1. Install docker and docker-compose.
  2. Run: docker-compose build, to create all the required images.
  3. To start the verification, run: docker-compose up.

When it is already setup

You just need to run docker-compose up.

To clean up

  • If you want to stop containers and remove containers, networks, volumes, and images created by up command, run: docker-compose down.
  • If you want to delete all the images, run: docker rmi -f $(docker images -q).

To write new tests

  • You must use the unittest package
  • You must put your test file in the tests folder
  • You must name your test file using the following next pattern: test_*.py

Local server

A server with a web page can be used at the following address: http://server:5000/index.html and http://server:5000/other.html

Usage

Documentation

The documentation is accessible here, on readthedocs.

Exemple with django

The server must be launched using --nothreading and --noreload as argument.

# 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')

Or using the already wrapped function

# 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')

Using Gunicorn

With Gunicorn there isn't the thread related problems so we don't need to use the --nothreading and --noreload arguments.

CHANGELOG

0.0.1

Initialization of Screamshot library

  1. init file:
    • author
    • version
    • all
  2. core file:
    • A ScreenShot object with three methods:
      • load, loads a web page
      • screamshot, takes a screenshot of a loaded page
      • load_and_screamshot, loads a web page and takes a screenshot

0.1.0

  • There is no more ScreenShot object just a function named generate_bytes_img which takes some parameters and returns a binary bytes object.

0.1.1

  • generate_bytes_img is no more a sync function and generate_bytes_img_prom has been added
  • generate_bytes_img_prom uses the asyncio.Future object

0.1.2

  • A test and verification tool using Docker is now available

0.1.3

  • Add browser-manager script
  • Add screamshot script

0.1.4

  • Add serialize function
  • Add deserialize function

0.1.5

  • Add generate_bytes_img_django_wrap function

0.1.6

  • Module is now available

0.1.7

  • The browser endpoint is saved in the temporary directory

0.1.8

  • serialize function returns a dict object
  • deserialize takes a dict object

0.1.9

  • Remove serializer functions
  • Add a bytes_to_img function

0.1.10

  • generate_bytes_img_django_wrap is renamed generate_bytes_img_wrap
  • Error are handled

0.1.11

  • bytes_to_png is renamed bytes_to_file
  • bytes_to_file supports type choice

0.1.12

  • You can now fetch http headers from another page with get_token
  • And store these headers in the local storage

Release files for screamshot 0.1.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for screamshot 0.1.12
File Size Uploaded
screamshot-0.1.12.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for screamshot 0.1.12
File Interpreter ABI Platform
screamshot-0.1.12-py3-none-any.whl Python 3 none any Details

Total release size: 30.4 kB

Release files / screamshot-0.1.12.tar.gz

Download URL screamshot-0.1.12.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
18eb7dc3870515ca6cdbfedc4ffb699eca8747381eeafcd5780dc61fe31228bc
BLAKE2b-256 checksum
How to use checksums
81bd6ac31bac93952d3ef5f52c7fbfda9becf49397a56e9673170e7fa5eeed59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

Release files / screamshot-0.1.12-py3-none-any.whl

Download URL screamshot-0.1.12-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b058803b2a2ba84211c0bada47638070e1e9738f07f1190867f96af0bf4c4b54
BLAKE2b-256 checksum
How to use checksums
20597f7bf2666b0f31a585af7df2e60e6c252cb6503e7a48366218d2c22e2013
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

Release history Release notifications | RSS feed

This release

0.1.12 This release

2 release files

0.1.9

4 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page