1

我正在尝试使用 C++ 解析一些 HTML 以从 HTML 中提取所有 url(这些 url 可以在 href 和 src 属性内)。

我尝试使用 Webkit 为我完成繁重的工作,但是由于某种原因,当我用 HTML 加载框架时,生成的文档全错了(如果我让 Webkit 从 Web 获取页面,生成的文档就好了,但 Webkit 也下载所有图像、样式和脚本,我不想要)

这是我试图做的:

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 的简单方法?(或其他一些轻量级库)

4

1 回答 1

2

您总是可以使用 XPath 表达式来简化您的解析工作,例如看看这个。

或者你可以做这样的事情

QWebView* view = new QWebView(parent);
view.load(QUrl("http://www.your_site.com"));
QWebElementCollection elements = view.page().mainFrame().findAllElements("a");
于 2011-05-22T08:18:33.907 回答