Parsing HTML with C++ (using Qt preferably)
我试图用C++解析一些HTML来从HTML中提取所有URL(URL可以在HREF和SRC属性内)。
我试着用webkit为我做繁重的工作,但出于某种原因,当我用html加载一个框架时,生成的文档都是错误的(如果我让webkit从Web获取页面,生成的文档就很好,但是webkit也下载了所有图像、样式和脚本,我不想这样做)。
我想做的是:
1 2 3 4 5 6 | frame->setHtml(HTML); QWebElement document = frame->documentElement(); QList<QWebElement> imgs = document.findAll("a"); // Doesn't find all links QList<QWebElement> imgs = document.findAll("img"); // Doesn't find all images QList<QWebElement> imgs = document.findAll("script");// Doesn't find all scripts qDebug() << document.toInnerXml(); // Print a completely messed-up document with several missing elements |
我做错什么了?有没有一种简单的方法可以用qt解析HTML?(或其他轻型库)
您可以始终使用xpath表达式来简化解析过程,例如,看看这个例子。
或者你可以这样做
1 2 3 | QWebView* view = new QWebView(parent); view.load(QUrl("http://www.your_site.com")); QWebElementCollection elements = view.page().mainFrame().findAllElements("a"); |