Добрый день. Я пишу приложение которое парсает HTML и в том числе различные ads которые подгружаются с помощью javascript.
То есть для начала я бы хотел получить полную html страницу, как это например делает firebug. По документации и примерах для этого идеально подходит QtWebKit.
Код:
PageLoader::PageLoader(const QUrl &url)
{
mWebPage = new QWebPage();
mWebPage->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
mWebPage->settings()->setAttribute(QWebSettings::PluginsEnabled, false);
mWebPage->settings()->setAttribute(QWebSettings::AutoLoadImages, false);
mWebPage->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, false);
connect(mWebPage->mainFrame(),SIGNAL(loadFinished(bool)), this, SLOT(processPage()));
mWebPage->currentFrame()->load(url);
}
void PageLoader::processPage()
{
QWebFrame* frame = mWebPage->currentFrame();
QString webHtml = frame->toHtml();
QFile file("/home/ostap/output.txt");
file.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&file);
out << webHtml;
emit finished();
}
Но в файле output я получаю просто html страницу со ссылками на *.js файлы, а не полный уже сгенерированный html код.
В чем здесь проблема? Куда копать?