Простой скрипт для скриншотов списка веб-сайтов, основанный на скрипте phantomjs с url-to-image.
Особенности
- Интеграция url-to-image «ленивый рендеринг» для ресурсов AJAX
- Полностью функциональный в системах Windows и Linux
- Поддержка определения заголовков и пользовательских HTTP-заголовков
- Многопроцессорность и убийство неподходящих процессов после заданного пользователем таймаута
- принимает несколько форматов в качестве цели ввода
- Карты полезных опций фантомов, таких как игнорирование ошибки ssl, определение прокси и прокси-аутентификация, HTTP Basic Authentication
Использование
Поместите свои цели в текстовый файл и передайте его скрипту (-i).
Скриншоты будут доступны в вашем текущем каталоге ./screenshots/ (по умолчанию).
Принимаемые форматы ввода:
http(s)://domain_or_ip:port(/ressource) domain_or_ip:port(/ressource) domain_or_ip(/ressource)
Опции
# python webscreenshot.py -h
Usage: webscreenshot.py [options]
Options:
-h, --help show this help message and exit
Main parameters:
-i INPUT_FILE, --input-file=INPUT_FILE
<INPUT_FILE>: text file containing the target list.
Ex: list.txt
-o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
<OUTPUT_DIRECTORY> (optional): screenshots output
directory (default './screenshots/')
-w WORKERS, --workers=WORKERS
<WORKERS> (optional): number of parallel execution
workers (default 2)
-v, --verbosity <VERBOSITY> (optional): verbosity level, repeat it to
increase the level { -v INFO, -vv DEBUG } (default
verbosity ERROR)
Input processing parameters:
-p PORT, --port=PORT
<PORT> (optional): use the specified port for each
target in the input list. Ex: -p 80
-s, --ssl <SSL> (optional): enforce ssl for every connection
-m, --multiprotocol
<MULTIPROTOCOL> (optional): perform screenshots over
HTTP and HTTPS for each target
HTTP parameters:
-c COOKIE, --cookie=COOKIE
<COOKIE_STRING> (optional): cookie string to add. Ex:
-c "JSESSIONID=1234; YOLO=SWAG"
-a HEADER, --header=HEADER
<HEADER> (optional): custom or additional header.
Repeat this option for every header. Ex: -a "Host:
localhost" -a "Foo: bar"
-u HTTP_USERNAME, --http-username=HTTP_USERNAME
<HTTP_USERNAME> (optional): specify a username for
HTTP Basic Authentication.
-b HTTP_PASSWORD, --http-password=HTTP_PASSWORD
<HTTP_PASSWORD> (optional): specify a password for
HTTP Basic Authentication.
Connection parameters:
-P PROXY, --proxy=PROXY
<PROXY> (optional): specify a proxy. Ex: -P
http://proxy.company.com:80
Примеры
list.txt -------- http://google.fr https://173.194.67.113 173.194.67.113 https://duckduckgo.com/robots.txt Default execution ----------------- # python webscreenshot.py -i list.txt webscreenshot.py version 1.0 [+] 4 URLs to be screenshot [+] 4 actual URLs screenshot [+] 0 errors Increasing verbosity level execution ----------------------------------- # python webscreenshot.py -i list.txt -v webscreenshot.py version 1.1 [INFO][General] 'http://google.fr' has been formatted as 'http://google.fr:80' with supplied overriding options [INFO][General] 'https://173.194.67.113' has been formatted as 'https://173.194.67.113:443' with supplied overriding options [INFO][General] '173.194.67.113' has been formatted as 'http://173.194.67.113:80' with supplied overriding options [INFO][General] 'https://duckduckgo.com/robots.txt' has been formatted as 'https://duckduckgo.com:443/robots.txt' with supplied overriding options [+] 4 URLs to be screenshot [INFO][http://173.194.67.113:80] Screenshot OK [INFO][https://173.194.67.113:443] Screenshot OK [INFO][http://google.fr:80] Screenshot OK [INFO][https://duckduckgo.com:443/robots.txt] Screenshot OK [+] 4 actual URLs screenshot [+] 0 errors Results ------- # ls -l screenshots/ total 61 -rwxrwxrwx 1 root root 35005 Jan 12 19:46 http___173.194.67.113_80.png -rwxrwxrwx 1 root root 38152 Jan 12 19:46 http___google.fr_80.png -rwxrwxrwx 1 root root 35005 Jan 12 19:46 https___173.194.67.113_443.png -rwxrwxrwx 1 root root 12828 Jan 12 19:46 https___duckduckgo.com_443_robots.txt.png
Требования
Python 2.7
webscreenshot скрипт python: Самый простой способ настроить его: pip install webscreenshot, а затем напрямую использовать $ webscreenshot
Или git clone репозиторий
Phantomjs> 2.x: следуйте инструкциям по установке и, если необходимо, проверьте FAQ
Изменения
- версия 2.1 – 01/14/2018: добавление многопротокольных опций и упаковка PyPI
- версия 2.0 – 03/08/2017: добавление опции типа прокси
- версия 1.9 – 01/10/2017: Использование ВСЕХ шифров SSL / TLS
- версия 1.8 – 07/05/2015: определение групп опций
- версия 1.7 – 06/28/2015: поддержка базовой аутентификации HTTP + опция loglevel изменена на многословие
- версия 1.6 – 04/23/2015: Прозрачная фоновая фиксация
- версия 1.5 – 01/11/2015: поддержка файлов cookie и пользовательских HTTP-заголовков
- версия 1.4 – 10/12/2014: интеграция с phantomjs-url-to-image + исправлено несколько ошибок
- версия 1.3 – 08/05/2014: поддержка Windows + исправлено несколько ошибок
- версия 1.2 – 04/27/2014: исправлено несколько ошибок
- version 1.1 – 04/21/2014: Изменен скрипт для использования phantomjs вместо двоичного bugy wkhtml
- version 1.0 – 01/12/2014: Первоначальное
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.








