Как я могу сделать удаленный скриншот сайта с URL?

Итак, у меня есть приложение, которое делает:

  1. Возьми количество ссылок из SQL

  2. Создает новую тему для каждой ссылки

  3. Получите HTML-код этого сайта с пакетом HTML-Agility-Pack для каждой темы.

  4. Сохраняет свои данные в SQL (размеры изображения, размер страницы, количество слов, слова и т. Д.) И сохраняет этот процесс с датой

Это делается для того, чтобы проверить данные на веб-сайте и посмотреть, есть ли какие-либо изменения (например, опечатка или проблема с ранее загруженными изображениями), и я хочу добавить к ним скриншот / эскиз для каждой страницы. Как я могу сделать скриншот всей страницы в каждой теме?

2 ответа

Похоже, интересное приложение. Поскольку вы уже получили HTML-код для всего URL-адреса (я предполагаю, что приложение работает на компьютере / сервере, который имеет подключение к Интернету):

Есть 3 способа сделать это (на самом деле еще много).

  1. В потоке - создайте объект System.Windows.Forms.Form, добавьте веб-браузер в его список дочерних элементов управления (Dock = Fill). Заставьте браузер перейти к URL. После завершения навигации сделайте снимок экрана диалога WinForms.
  2. В потоке - запустить браузер chrome/IE, передав URL в качестве аргумента командной строки. Подождите некоторое время в потоке (нет хорошего способа узнать, когда закончится рендеринг). Сделай скриншот.
  3. В теме - Использовать селеновый тип.net-совместимой библиотеки - которая поможет вам автоматизировать тестирование веб-интерфейса, а затем выполнить Шаг № 2. Используя этот подход, вы получите более детальный контроль над веб-браузером.

Чтобы сделать снимок экрана, вам нужно, чтобы ваш HTML отображался. Это задача для веб-браузера. Поскольку вы ищете решение для C#, вы можете использовать CefSharp ( https://github.com/cefsharp/CefSharp) для рендеринга вашего html в неэкранном режиме.

Другие вопросы по тегам