Получить снимок веб-сайта с помощью C++

Есть ли способ захватить изображение веб-страницы с помощью C++ CGI? Я искал высоко и низко, и хотя я нашел множество реализаций во всем, от Perl до C#, я не смог найти ни одной реализации в C++.

Идея состоит в том, чтобы пользователь, посещающий сайт, мог указать URL. Затем сценарий сделает снимок веб-сайта URL, а затем покажет загрузку его на веб-сайт C++ CGI, который я создаю.

Любая помощь по этому вопросу будет высоко ценится!

Спасибо!

Пример в Perl: Webthumb

1 ответ

Решение

Вам нужно отрендерить веб-страницу, чтобы создать снимок. Чтобы отобразить страницу в C++, вам нужно включить движок браузера. Вы можете легко сделать это, используя Qt (инструментарий для C++). Это взято из документации Qt и это все, что вам нужно, чтобы показать веб-страницу.

QWebView *view = new QWebView(ui->centralWidget);
view->load(QUrl("http://qt.nokia.com/"));
view->show();

Объект представления имеет сигнал loadFinished. Вы можете подключить некоторый код к этому сигналу. Когда страница отображается, вы делаете снимок, как описано здесь. Это сводится к:

QPixmap::grabWindow(mainwindow->winId())

Когда у вас есть скриншот, вы можете вернуть байты на стандартный вывод из вашего cgi и все готово.

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