c++ - 通过C++控制网络浏览器

标签 c++ google-chrome firefox google-chrome-extension firefox-addon

我想编写一个可以使用特定网站的程序。我希望它能够识别相当琐碎的事物(文本)、单击链接和提交表单。

我希望服务器日志看起来与实际用户的事件没有什么不同,所以我不想像往常一样在浏览器之外进行操作。我希望 javascript 之类的东西能够在页面上按预期运行,所以我不想只是伪造正在发送的用户代理。

要实现此目标,我应该关注什么?它会在 Windows 中运行。如果我必须选择一个浏览器,那将是 Chrome,而 Firefox 是我的第二选择。如果它没有那么复杂,我很乐意让它与 Chrome、Firefox、IE 和 Edge 一起工作,但只选择 1 也可以。

我非常熟悉 C++,并且更愿意将其用于此项目。 (是的,我知道其他语言对于熟悉它们的人来说可能会更快,但这是我想要坚持的。)

我需要它能够在浏览器之外与数据库进行交互。我可以使用能够进行进程间通信的浏览器插件来处理此问题,或者使用能够有效抓取浏览器并创建用户外观输入的完全外部程序。

最佳答案

Selenium看起来它很适合你。它通常用于 web 应用程序的自动化测试,但没有理由不能与任何站点交互。它可以用于以完全自动化的方式驱动任何主要浏览器(不确定 Edge;我已经有一段时间没有使用 Selenium 了)。

Selenium 没有 C++ 绑定(bind),但它有 Java、C#、Python、Ruby、PHP、Perl 和 Javascript 绑定(bind)供您使用。

关于c++ - 通过C++控制网络浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37359504/

相关文章:

c++ - 斐波那契数列,二分查找

javascript - Object.defineProperty 该 prop 在 chrome devtool 下不可见

java - 如何在多个浏览器中运行 Selenium 测试以使用 Java 进行跨浏览器测试?

html - 强制浏览器忽略 HTML 5 特性

html - translateZ 不适用于 Firefox

c++ - C++ 标准库或其他广泛使用的库中的单链表?

c++ - 在 C++ 中,我可以使用箭头运算符访问另一个运算符吗?

python - 如何获取Dev C++来查找Python.h

javascript - 如何从 chrome 扩展调用 DLL 中的导出函数(使用 C 编写)

firefox - Firefox 中的 X-Frame-Options 允许拒绝加载