Получить снимок веб-сайта с помощью 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 и все готово.