Qt html解析没有找到任何标签

时间:2012-03-12 12:20:01

标签: c++ html qt html-parsing

我正在编写一个爬行应用程序。在我的代码中的某处:

//normally the HTML is obtained from web with QNetworkAccessManager & QNetworkReply:
//QString htmlCode = this->reply->readAll();  

//exemplary test HTML
QString htmlCode =QString("<html><body><a href=\'foo.bar\'>test1</a><h2>test2<h2><a href=\"bar.foo  \">test3</a></body></html>"); 
QWebPage page;
QWebFrame * frame = page.mainFrame(); //->setHtml(htmlCode);
frame->setHtml(htmlCode);
QWebElement document = frame->documentElement();
QWebElementCollection links = document.findAll("a");
foreach (QWebElement e, links) {
   qDebug() << "exemplary link:" << e.toPlainText();
}

我确实意识到,这里有关于在qt中解析html的大量话题,但我不知道,这里有什么问题......

1 个答案:

答案 0 :(得分:1)

嗯......我不确定setHtml()是否完全同步,即我认为当时帧内容没有完全解析,因此DOM内容尚不可用。

您应该尝试连接到void QWebFrame::loadFinished ( bool ok )并在那里进行DOM抓取。