gpt4 book ai didi

html - 从 QWebPage 获取完整的 href 列表

转载 作者:行者123 更新时间:2023-11-27 22:47:59 25 4
gpt4 key购买 nike

我正在尝试使用 QWebPage(来自 QWebKit)列出具有完整 URL 的 A 标签的所有 href 属性。目前,我这样做:

QWebElementCollection collection = webPage->mainFrame()->findAllElements("a");
foreach (QWebElement element, collection)
{
QString href = element.attribute("href");
if (!href.isEmpty())
{
// Process
}
}

但问题是 href 可能是一个完整的 URL,也可能只是一个页面,一个前面带有/的 URL,或者一个前面带有 ../的 URL。有没有办法解析所有这些不同的 URL 以在 QString 或 QUrl 中生成完整的 URL?

最佳答案

QWebFrame 有一个名为 baseUrl 的函数,它会提供一个 QUrl 对象来帮助您解析页面中的 url。

有了它,您可以使用单独的 QUrl(从 href 构建)调用已解析的函数来解析 url。如果 url 是相对的,它会将其转换为解析的绝对 url。如果它不是相对的,则返回它而不进行任何修改。

这是一个基于您提供的代码的(未经测试的)示例:

QUrl baseUrl = webPage->mainFrame()->baseUrl();

QWebElementCollection collection = webPage->mainFrame()->findAllElements("a");
foreach (QWebElement element, collection)
{
QString href = element.attribute("href");
if (!href.isEmpty())
{
QUrl relativeUrl(href);

QUrl absoluteUrl = baseUrl.resolved(relativeUrl);

// Process
}
}

关于html - 从 QWebPage 获取完整的 href 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com