【问题标题】:How to get a fully functional Web Browser embedded into my C++ application如何将功能齐全的 Web 浏览器嵌入到我的 C++ 应用程序中
【发布时间】:2013-11-20 04:36:35
【问题描述】:

我想创建一个应用程序,该应用程序能够在我浏览时从特定网站提取数据(用于单独处理和格式化),并可能在后台自动检索某些特定页面。

网站本身在这里无关紧要,但相关的是它在登录之后(因此需要会话/cookie 管理)并且它使用大量 Javascript (JQuery),尤其是大量 Ajax 用于实时内容。不过,一个可取之处是它不使用 Flash。

我只需要这个应用程序在Windows环境下运行,但需要支持XP和7。而且我不在乎它是什么浏览器,只要它功能齐全!

所以,我正在尝试找到将功能齐全的浏览器嵌入到我自己的 C++ 应用程序中的最简单方法。选择的 IDE 将是 Visual Studio 2008/2010,尽管 Borland C++ 也是一个选项。我的理想目标是使用 WxWidgets(如果我走 VS 路径)来管理 GUI 的其余部分,并且不想在 C#/.net 或 QT 中编程。

  • 我找到了“wxWebConnect”,它做了很多我需要的事情,但它不支持 cookie/会话,因此无法使用。
  • 我尝试了Microsoft Web Browser Com 组件,但它在复杂网站上存在渲染问题。
  • WX 的 WebKit 路径已废弃。
  • Borland WebBrowser 组件也已过时,无法正确呈现复杂页面。
  • 我在此处和其他地方找到的许多 search 结果要么已过时,要么无法处理功能齐全的浏览器,要么使用的语言/平台不适合我。

我很确定必须有一个简单的解决方案,因为我确信许多其他人已经做过类似的事情。我只是暂时找不到它!我已经简要地查看了 Firefox/Chromium 路径,这可能是正确的区域,但是我还没有找到一种简单的方法将它们集成/使用到我自己的 WX 项目中。

【问题讨论】:

  • 我认为你应该尝试联系有问题的网站,看看他们是否有更简单的 API(REST 或其他)可以使用,这样你就不必真正获得完整的需要执行的带有 javascript 的页面。然后你可以简单地使用例如libcurl 和一个 JSON/XML 解析器(取决于您将收到什么)来提取您需要的数据。
  • 这可能是相关的:stackoverflow.com/questions/18119125/…。此外,MS WebBrowser 渲染问题通常可以轻松解决:stackoverflow.com/a/18802626/1768303
  • @JoachimPileborg 我已经联系了他们,但他们没有我可以使用的任何 API 或替代接口,所以我不得不“艰难地”这样做

标签: c++ windows visual-studio browser wxwidgets


【解决方案1】:

在 wxWidgets 3.0 中,您可以使用 wxWebView,它是原生 HTML 渲染引擎的封装,完全支持 CSS、JavaScript 等。默认使用系统IE引擎,但你也可以使用with Chromium

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2010-10-30
    • 2011-11-27
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多