Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/maaaaz/webscreenshot
РазведкаСбор информацииВеб-безопасность
GitHubmaaaaz/webscreenshot

webscreenshot

Простой скрипт для создания скриншотов списка веб-сайтов

Репозиторий
692168310 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

webscreenshot

Описание

Простой скрипт для создания скриншотов списка веб-сайтов, основанный на скрипте PhantomJS url-to-image.

Возможности

  • Интеграция «ленивого рендеринга» url-to-image для ресурсов AJAX
  • Полноценная работа в системах Windows и Linux
  • Поддержка определения cookie и пользовательских HTTP-заголовков для рендерера PhantomJS
  • Многопроцессность и завершение не отвечающих процессов по истечении задаваемого пользователем тайм-аута
  • Принятие нескольких форматов в качестве входных целей
  • Настройка размера скриншота (ширина, высота), формата и качества
  • Отображение полезных опций PhantomJS, таких как игнорирование ошибок SSL, определение прокси и аутентификация прокси, HTTP Basic Authentication
  • Поддержка нескольких рендереров:
    • PhantomJS, который является устаревшим и заброшенным, но всё ещё даёт наилучшие результаты
    • Chromium, Chrome и Edge Chromium, которые заменят PhantomJS, но в настоящее время имеют некоторые ограничения: создание скриншота HTTPS-сайта без действительного сертификата, например самоподписанного, приведёт к пустому скриншоту.
      Причина в том, что опция --ignore-certificate-errors не работает и больше никогда не будет работать: решение — использовать подходящий веб-драйвер, но на данный момент webscreenshot не ставит целью поддержку этого довольно сложного метода, требующего сторонних инструментов.
    • Firefox также может использоваться как рендерер, но имеет серьёзные ограничения (так что пока не используйте его):
      • Невозможность одновременного создания нескольких скриншотов: отсутствие нескольких экземпляров процесса firefox
      • Отсутствие режима инкогнито: использование webscreenshot будет загрязнять вашу историю просмотров
  • Встраивание URL скриншота в изображение (требуется ImageMagick)

Использование

Поместите цели в текстовый файл и передайте его с опцией -i, или как позиционный аргумент, если у вас только один URL.
Скриншоты по умолчанию будут сохранены в текущую директорию ./screenshots/.
Принимаются следующие форматы входных данных:

root@kitploit:~
http(s)://domain_or_ip:port(/resource)
domain_or_ip:port(/resource)
domain_or_ip(/resource)

Опции

root@kitploit:~
webscreenshot.py version 2.96

usage: webscreenshot [-h] [-i INPUT_FILE] [-o OUTPUT_DIRECTORY] [-w WORKERS] [-v] [--no-error-file] [-z SINGLE_OUTPUT_FILE] [-p PORT]
                     [-s] [-m] [-r {phantomjs,chrome,chromium,edge,firefox}] [--renderer-binary RENDERER_BINARY] [--no-xserver]
                     [--window-size WINDOW_SIZE] [-f {pdf,png,jpg,jpeg,bmp,ppm}] [-q [0-100]] [--ajax-max-timeouts AJAX_MAX_TIMEOUTS]
                     [--crop CROP] [--custom-js CUSTOM_JS] [-l] [--label-size LABEL_SIZE] [--label-bg-color LABEL_BG_COLOR]
                     [--imagemagick-binary IMAGEMAGICK_BINARY] [-c COOKIE] [-a HEADER] [-u HTTP_USERNAME] [-b HTTP_PASSWORD]
                     [-P PROXY] [-A PROXY_AUTH] [-T PROXY_TYPE] [-t TIMEOUT]
                     [URL]

options:
  -h, --help            показать это справочное сообщение и выйти

Основные параметры:
  URL                   Одиночный URL-адрес цели, задаваемый как позиционный аргумент
  -i, --input-file INPUT_FILE
                        <INPUT_FILE> текстовый файл, содержащий список целей. Пример: list.txt
  -o, --output-directory OUTPUT_DIRECTORY
                        <OUTPUT_DIRECTORY> (необязательно): директория для вывода скриншотов (по умолчанию './screenshots/')
  -w, --workers WORKERS
                        <WORKERS> (необязательно): количество параллельных рабочих процессов (по умолчанию 4)
  -v, --verbosity       <VERBOSITY> (необязательно): уровень подробности, повторите для повышения уровня { -v INFO, -vv DEBUG } (по умолчанию
                        verbosity ERROR)
  --no-error-file       <NO_ERROR_FILE> (необязательно): не записывать файл со списком URL-адресов, для которых скриншот не удался (по умолчанию false)
  -z, --single-output-file SINGLE_OUTPUT_FILE
                        <SINGLE_OUTPUT_FILE> (необязательно): имя файла, который будет единым выходным файлом для всех входных данных. Пример: test.png

Параметры обработки ввода:
  -p, --port PORT       <PORT> (необязательно): использовать указанный порт для каждой цели в списке ввода. Пример: -p 80
  -s, --ssl             <SSL> (необязательно): принудительно включить SSL/TLS для каждого соединения
  -m, --multiprotocol   <MULTIPROTOCOL> (необязательно): создавать скриншоты по HTTP и HTTPS для каждой цели

Параметры рендерера скриншотов:
  -r, --renderer {phantomjs,chrome,chromium,edge,firefox}
                        <RENDERER> (необязательно): используемый рендерер: 'phantomjs' (устаревший, но лучшие результаты), 'chrome', 'chromium',
                        'edge', 'firefox' (версия > 57) (по умолчанию 'phantomjs')
  --renderer-binary RENDERER_BINARY
                        <RENDERER_BINARY> (необязательно): путь к исполняемому файлу рендерера, если он не найден в $PATH
  --no-xserver          <NO_X_SERVER> (необязательно): если вы работаете без X-сервера, будет использоваться xvfb-run для выполнения рендерера
                        (по умолчанию пытается определить, существует ли переменная окружения DISPLAY

Параметры изображения скриншота:
  --window-size WINDOW_SIZE
                        <WINDOW_SIZE> (необязательно): ширина и высота захвата экрана (по умолчанию '1200,800')
  -f, --format {pdf,png,jpg,jpeg,bmp,ppm}
                        <FORMAT> (необязательно, только phantomjs): указать формат выходного файла изображения: "pdf", "png", "jpg", "jpeg", "bmp"
                        или "ppm" (по умолчанию 'png')
  -q, --quality [0-100]
                        <QUALITY> (необязательно, только phantomjs): указать качество выходного изображения, целое число от 0 до 100 (по умолчанию
                        75)
  --ajax-max-timeouts AJAX_MAX_TIMEOUTS
                        <AJAX_MAX_TIMEOUTS> (необязательно, только phantomjs): тайм-аут на каждый AJAX-запрос и максимальный тайм-аут URL в миллисекундах
                        (по умолчанию '1400,1800')
  --crop CROP           <CROP> (необязательно, только phantomjs): прямоугольник <t,l,w,h> для обрезки захваченного экрана (по умолчанию соответствует WINDOW_SIZE:
                        '0,0,w,h'), только числа, w(idth) и h(eight). Пример: "10,20,w,h"
  --custom-js CUSTOM_JS
                        <CUSTOM_JS> (необязательно, только phantomjs): путь к файлу, содержащему JavaScript-код для выполнения перед
                        созданием скриншота. Пример: js.txt

Параметры меток скриншотов:
  -l, --label           <LABEL> (необязательно): для каждого скриншота создать дополнительный с отображённым внутри URL-адресом цели (требуется
                        imagemagick)
  --label-size LABEL_SIZE
                        <LABEL_SIZE> (необязательно): размер шрифта для метки (по умолчанию 60)
  --label-bg-color LABEL_BG_COLOR
                        <LABEL_BACKGROUND_COLOR> (необязательно): цвет фона метки в imagemagick (по умолчанию NavajoWhite)
  --imagemagick-binary IMAGEMAGICK_BINARY
                        <LABEL_BINARY> (необязательно): путь к исполняемому файлу imagemagick (magick или convert), если он не найден в $PATH

Параметры HTTP:
  -c, --cookie COOKIE   <COOKIE_STRING> (необязательно): строка cookie для добавления. Пример: -c "JSESSIONID=1234; YOLO=SWAG"
  -a, --header HEADER   <HEADER> (необязательно): пользовательский или дополнительный заголовок. Повторите эту опцию для каждого заголовка. Пример: -a "Host:
                        localhost" -a "Foo: bar"
  -u, --http-username HTTP_USERNAME
                        <HTTP_USERNAME> (необязательно): указать имя пользователя для HTTP Basic Authentication.
  -b, --http-password HTTP_PASSWORD
                        <HTTP_PASSWORD> (необязательно): указать пароль для HTTP Basic Authentication.

Параметры соединения:
  -P, --proxy PROXY     <PROXY> (необязательно): указать прокси. Пример: -P http://proxy.company.com:8080
  -A, --proxy-auth PROXY_AUTH
                        <PROXY_AUTH> (необязательно): предоставляет информацию для аутентификации на прокси. Пример: -A user:password
  -T, --proxy-type PROXY_TYPE
                        <PROXY_TYPE> (необязательно): указывает тип прокси: "http" (по умолчанию), "none" (полное отключение) или
                        "socks5". Пример: -T socks
  -t, --timeout TIMEOUT
                        <TIMEOUT> (необязательно): тайм-аут выполнения рендерера в секундах (по умолчанию 30 сек)

Примеры

root@kitploit:~
list.txt
--------
http://google.fr
https://216.58.213.131
216.58.213.131
https://duckduckgo.com/robots.txt


Обычный запуск со списком
-----------------------------
$ python webscreenshot.py -i list.txt
webscreenshot.py version 2.3

[+] 4 URLs to be screenshot
[+] 4 actual URLs screenshot
[+] 0 error(s)


Обычный запуск с одним URL
-----------------------------------
$ python webscreenshot.py -v google.fr
webscreenshot.py version 2.3

[INFO][General] 'google.fr' has been formatted as 'http://google.fr:80' with supplied overriding options
[+] 1 URLs to be screenshot
[INFO][http://google.fr:80] Screenshot OK

[+] 1 actual URLs screenshot
[+] 0 error(s)


Запуск с повышенным уровнем подробности
-----------------------------------
$ python webscreenshot.py -i list.txt -v
webscreenshot.py version 2.3

[INFO][General] 'http://google.fr' has been formatted as 'http://google.fr:80' with supplied overriding options
[INFO][General] 'https://216.58.213.131' has been formatted as 'https://216.58.213.131:443' with supplied overriding options
[INFO][General] '216.58.213.131' has been formatted as 'http://216.58.213.131: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][https://duckduckgo.com:443/robots.txt] Screenshot OK

[INFO][http://216.58.213.131:80] Screenshot OK

[INFO][https://216.58.213.131:443] Screenshot OK

[INFO][http://google.fr:80] Screenshot OK

[+] 4 actual URLs screenshot
[+] 0 error(s)


Результаты
-------
$ ls -l screenshots/
total 187
-rwxrwxrwx 1 root root 53805 May 19 16:04 http_216.58.213.131_80.png
-rwxrwxrwx 1 root root 53805 May 19 16:05 http_google.fr_80.png
-rwxrwxrwx 1 root root 53805 May 19 16:04 https_216.58.213.131_443.png
-rwxrwxrwx 1 root root 27864 May 19 16:04 https_duckduckgo.com_443_robots.txt.png

Поддерживаемые опции по рендерерам

Опции, не перечисленные ниже, поддерживаются всеми текущими рендерерами

Требования

  • Интерпретатор Python версии 2.7 или 3.X
  • Python-скрипт webscreenshot:
    • Самый простой способ установки: pip install webscreenshot, затем сразу используйте $ webscreenshot
    • Или клонируйте репозиторий с помощью git и выполните pip install -r requirements.txt, затем python webscreenshot.py
  • Инструмент PhantomJS версии не ниже 2: следуйте руководству по установке и при необходимости посмотрите FAQ
  • Chrome, Chromium или Firefox > 57, если вы хотите использовать один из этих рендереров
  • xvfb, если вы хотите запускать webscreenshot в безголовой ОС: используйте опцию --no-xserver в webscreenshot для упрощения
  • Бинарный файл ImageMagick (magick или convert), если вы хотите встраивать URL в скриншоты с помощью опции --label: следуйте

История изменений

  • версия 2.96/2.97 — 19.10.2025: Удалена поддержка Python v2
  • версия 2.95 — 18.10.2025: Исправлена ошибка phantomjs при отсутствии конфигурации OpenSSL
  • версия 2.94 — 23.08.2020: Добавлены опции custom-js и единый выходной файл
  • версия 2.93 — 16.08.2020: Добавлена поддержка Python 3.8 и Microsoft Edge Chromium; вывод файла для неудачных веб-скриншотов; ограничение длины имени файла для длинных URL
  • версия 2.92 — 21.06.2020: Автоопределение опции no_xserver
  • версия 2.91 — 08.05.2020: Исправление режима Multiprotocol
  • версия 2.9 — 26.01.2020: Несколько исправлений
  • версия 2.8 — 11.01.2020: Несколько исправлений, добавлены опции ajax timeouts, crop, label size, label font; изменены значения по умолчанию для ajaxTimeout и maxTimeout
  • версия 2.7 — 04.01.2020: Добавлена опция встраивания URL в скриншот
  • версия 2.6 — 27.12.2019: Несколько исправлений
  • версия 2.5 — 22.09.2019: Добавлены опции качества изображения и формата; обновлён UserAgent PhantomJS; поддержка современных TLD
  • версия 2.4 — 30.05.2019: Несколько исправлений для поддержки Windows
  • версия 2.3 — 19.05.2019: Совместимость с Python 3, добавлен рендерер Firefox, добавлена опция no-xserver
  • версия 2.2 — 13.08.2018: Поддержка рендереров Chrome и Chromium, поддержка одного URL
  • версия 2.1 — 14.01.2018: Добавление опции Multiprotocol и упаковка в PyPI
  • версия 2.0 — 08.03.2017: Добавление опции proxy-type
  • версия 1.9 — 10.01.2017: Использование ВСЕХ SSL/TLS-шифров
  • версия 1.8 — 05.07.2015: Определение групп опций
  • версия 1.7 — 28.06.2015: Поддержка HTTP Basic Authentication; опция loglevel изменена на verbosity
  • версия 1.6 — 23.04.2015: Исправление прозрачного фона
  • версия 1.5 — 11.01.2015: Поддержка cookie и пользовательских HTTP-заголовков
  • версия 1.4 — 12.10.2014: Интеграция PhantomJS-скрипта url-to-image + несколько исправленных ошибок
  • версия 1.3 — 05.08.2014: Поддержка Windows + несколько исправленных ошибок
  • версия 1.2 — 27.04.2014: Несколько исправленных ошибок
  • версия 1.1 — 21.04.2014: Изменён скрипт для использования PhantomJS вместо проблемного бинарного файла wkhtml
  • версия 1.0 — 12.01.2014: Первоначальный коммит

Авторские права и лицензия

webscreenshot является свободным программным обеспечением: вы можете распространять и/или изменять его в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 этой лицензии, либо (по вашему выбору) любой более поздней версии.

webscreenshot распространяется в надежде, что он будет полезен, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ.

См. Стандартную общественную лицензию GNU для более подробной информации.

Вы должны были получить копию Стандартной общественной лицензии GNU вместе с webscreenshot. Если нет, см. http://www.gnu.org/licenses/.

Контакты

  • Thomas Debize < tdebize at mail d0t com >
Скачать инструмент
Категория опцииОпцияРендерер PhantomJSРендерер Chromium / Chrome / Edge ChromiumРендерер Firefox
Параметры скриншота
format (-f)ДаНетНет
quality (-q)ДаНетНет
ajax и тайм-ауты запросов (--ajax-max-timeouts)ДаНетНет
обрезка (--crop)ДаНетНет
пользовательский JavaScript (--custom-js)ДаНетНет
Параметры HTTP
cookie (-c)ДаНетНет
заголовок (-a)ДаНетНет
http_username (-u)ДаНетНет
http_password (-b)ДаНетНет
Параметры соединения
прокси (-P)ДаДаНет
proxy_auth (-A)ДаНетНет
proxy_type (-T)ДаДаНет
Возможность создания скриншота HTTPS-сайта с сертификатом, не подписанным общедоступным центром сертификацииДаНетНет
руководству по установке
  • Перед сообщением о проблемах проверьте FAQ