1

HTML からすべての URL を抽出するために C++ で HTML を解析しようとしています (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 に答える