Python library to capture screenshots of web applications or pages
Project description
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_bringswhere '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
- Install docker and docker-compose.
- Run:
docker-compose build, to create all the required images. - 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
unittestpackage - 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
- init file:
- author
- version
- all
- core file:
- A
ScreenShotobject with three methods:load, loads a web pagescreamshot, takes a screenshot of a loaded pageload_and_screamshot, loads a web page and takes a screenshot
- A
0.1.0
- There is no more
ScreenShotobject just a function namedgenerate_bytes_imgwhich takes some parameters and returns a binarybytesobject.
0.1.1
generate_bytes_imgis no more a sync function andgenerate_bytes_img_promhas been addedgenerate_bytes_img_promuses theasyncio.Futureobject
0.1.2
- A test and verification tool using Docker is now available
0.1.3
- Add
browser-managerscript - Add
screamshotscript
0.1.4
- Add
serializefunction - Add
deserializefunction
0.1.5
- Add
generate_bytes_img_django_wrapfunction
0.1.6
- Module is now available
0.1.7
- The browser endpoint is saved in the temporary directory
0.1.8
serializefunction returns adictobjectdeserializetakes adictobject
0.1.9
- Remove serializer functions
- Add a bytes_to_img function
0.1.10
generate_bytes_img_django_wrapis renamedgenerate_bytes_img_wrap- Error are handled
0.1.11
bytes_to_pngis renamedbytes_to_filebytes_to_filesupports 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file screamshot-0.1.12.tar.gz.
File metadata
- Download URL: screamshot-0.1.12.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18eb7dc3870515ca6cdbfedc4ffb699eca8747381eeafcd5780dc61fe31228bc
|
|
| MD5 |
da1e5a46219e466b5bdd2f16fc16c249
|
|
| BLAKE2b-256 |
81bd6ac31bac93952d3ef5f52c7fbfda9becf49397a56e9673170e7fa5eeed59
|
File details
Details for the file screamshot-0.1.12-py3-none-any.whl.
File metadata
- Download URL: screamshot-0.1.12-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using 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
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b058803b2a2ba84211c0bada47638070e1e9738f07f1190867f96af0bf4c4b54
|
|
| MD5 |
70f7cc913482e92a996d02b41f415e94
|
|
| BLAKE2b-256 |
20597f7bf2666b0f31a585af7df2e60e6c252cb6503e7a48366218d2c22e2013
|