Простой скрипт для скриншотов списка веб-сайтов, основанный на скрипте 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: Первоначальное
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.