【问题标题】:Getting WebPage to use a specific URL to download HTML resources让网页使用特定的 URL 来下载 HTML 资源
【发布时间】:2014-07-26 17:51:12
【问题描述】:

我有一个 Qt 程序,它可以下载网页 (HTML),解析它们,然后生成自己的 HTML,然后用QWebPage 显示。有时我下载的 HTML 包含 IMG 标记,当 src 属性包含完整 URL 时,这些标记可以正常工作。但是,有时IMG 标签可能会使用相对路径,例如:

<IMG SRC="images/foo.png" />

由于我知道应该添加到 SRC 之前的 URL,我的第一个想法是在解析时将其添加到生成的 HTML 中。但是,事实证明这比我预期的要困难,现在我想知道是否有更好的方法。

如果 QWebPage 有任何机制/属性,我可以说“将此 URL 用于相对路径”?或者也许有人可以提出更好的方法来完成我想要的?

谢谢!

【问题讨论】:

  • 从问题中不清楚为什么相对路径没有解析。请提供一些说明问题的示例代码。
  • 您可以尝试调用 QDir::setCurrent() 到您的 .html 文件的文件夹吗?也许它可以帮助解决相对路径。不过我不确定。
  • @MrEricSir 我使用 QNetworkManager (et al) 来获取我想要的页面的 HTML,但这并不是我实际显示的 HTML。我做了一些解析/处理/操作并生成我自己的 HTML。然后我只需调用 QWebView::setHtml.
  • @ch0kee 我不确定图像是否真的从我最初的 QNetworkRequest 中下载。我想知道是否有办法在单个 QNetworkReply 中获取图像,然后我可以处理响应的 MIME 部分......嗯......

标签: c++ qt qtwebkit qwebpage


【解决方案1】:

在 cmets 中,您提到您正在使用 QWebView::setHtml()。此方法的第二个可选参数设置用于解析相对路径的 URL。根据文档:

HTML 中引用的样式表或图像等外部对象 文档是相对于 baseUrl 定位的。

这里只需要设置该参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2010-10-10
    • 2013-05-14
    • 2016-01-15
    相关资源
    最近更新 更多