Qt に付属している DOM Traversal の例を修正しています。ただし、リンクが表示されるたびに、その URL に「移動」し、その DOM もトラバースしたいのですが、GUI をリロードしたくありません。今でも例のコードを使用してホームページを取得しています。
void Window::on_webView_loadFinished()
{
treeWidget->clear();
QWebFrame *frame = webView->page()->mainFrame();
QWebElement document = frame->documentElement();
examineChildElements(document, treeWidget->invisibleRootItem());
}
これはうまくいきます。inspectChildElements() では、特定のリンクに遭遇すると、その URL を使用して別の関数を呼び出します (URL 文字列を確認しましたが、正しいです)。
void Window::parse_page(QString page_URL)
{
QWebView *innerPage = new QWebView();
innerPage->setUrl(page_URL);
QWebFrame *frameInner = innerPage->page()->mainFrame();
QWebElement documentBetrieb = frameInner->documentElement();
get_biz_info(documentBetrieb);
delete innerPage;
return;
}
しかし、このドキュメント (documentBetrieb) をたどると、HTML タグしかありません。QWebView を使用せずに QWebElement に URL から直接 DOM を配置する方法、または行方不明のステップはありますか?