Как я могу сделать удаленный скриншот сайта с URL?
Итак, у меня есть приложение, которое делает:
Возьми количество ссылок из SQL
Создает новую тему для каждой ссылки
Получите HTML-код этого сайта с пакетом HTML-Agility-Pack для каждой темы.
Сохраняет свои данные в SQL (размеры изображения, размер страницы, количество слов, слова и т. Д.) И сохраняет этот процесс с датой
Это делается для того, чтобы проверить данные на веб-сайте и посмотреть, есть ли какие-либо изменения (например, опечатка или проблема с ранее загруженными изображениями), и я хочу добавить к ним скриншот / эскиз для каждой страницы. Как я могу сделать скриншот всей страницы в каждой теме?
2 ответа
Похоже, интересное приложение. Поскольку вы уже получили HTML-код для всего URL-адреса (я предполагаю, что приложение работает на компьютере / сервере, который имеет подключение к Интернету):
Есть 3 способа сделать это (на самом деле еще много).
- В потоке - создайте объект System.Windows.Forms.Form, добавьте веб-браузер в его список дочерних элементов управления (Dock = Fill). Заставьте браузер перейти к URL. После завершения навигации сделайте снимок экрана диалога WinForms.
- В потоке - запустить браузер chrome/IE, передав URL в качестве аргумента командной строки. Подождите некоторое время в потоке (нет хорошего способа узнать, когда закончится рендеринг). Сделай скриншот.
- В теме - Использовать селеновый тип.net-совместимой библиотеки - которая поможет вам автоматизировать тестирование веб-интерфейса, а затем выполнить Шаг № 2. Используя этот подход, вы получите более детальный контроль над веб-браузером.
Чтобы сделать снимок экрана, вам нужно, чтобы ваш HTML отображался. Это задача для веб-браузера. Поскольку вы ищете решение для C#, вы можете использовать CefSharp ( https://github.com/cefsharp/CefSharp) для рендеринга вашего html в неэкранном режиме.