在C语言中嵌入无头浏览器

在C语言中嵌入无头浏览器,c,dom,headless-browser,embeddable,C,Dom,Headless Browser,Embeddable,是否有任何env-js、phantom-js、slimmerJS或任何无头浏览器可嵌入到C应用程序中?这就是我需要做的:我有一个通过HTTP和HTTPS连接到两个服务器的C应用程序。到目前为止,我获取了每个页面,了解了它的功能(主要是Javascript),提取了我需要的部分代码(我还实现了一个非常简单的字符串解析器/提取器),并通过(安全的)套接字发送HTML代码并读回响应来实现流程。这部分工作仍然顺利 直到我遇到一组非常复杂(读:模糊且冗长)的javascript页面,这些页面一个接一个地链

是否有任何env-js、phantom-js、slimmerJS或任何无头浏览器可嵌入到C应用程序中?这就是我需要做的:我有一个通过HTTP和HTTPS连接到两个服务器的C应用程序。到目前为止,我获取了每个页面,了解了它的功能(主要是Javascript),提取了我需要的部分代码(我还实现了一个非常简单的字符串解析器/提取器),并通过(安全的)套接字发送HTML代码并读回响应来实现流程。这部分工作仍然顺利

直到我遇到一组非常复杂(读:模糊且冗长)的javascript页面,这些页面一个接一个地链接在一起,包括几个脚本和服务器端编程,然后我意识到,我无法用我所采用的过程获得一个“可维护”的程序

所以我花了几天时间寻找一个可嵌入的Javascript解释器。遇到了可嵌入C的spider monkey,但由于我对接收到的脚本没有任何控制权,它缺乏DOM实现,因此不适合使用。我也考虑过实现DOM接口,但老实说,这会让我的主要项目分心太久

然后我考虑了上面提到的无头浏览器。阅读了我找到的所有关于它们的信息,寻找某种类型的库与它们接口,在没有这些库的情况下,考虑过破解代码,结果发现,即使尝试破解phantomJS将其嵌入到我的C系统中,也比在spider monkey中实现DOM接口更疯狂

该系统目前在Windows中工作,我正在使用MinGW来开发它,但它的最终目标是在Raspberry PI中实现,因此我拥有的纯C源代码越多,就越容易将系统移动到最终目标。我的意思是:如果windows库是预构建的,我可以同时使用它们,但不能忽略它们必须是可编译的,并在普通编译器中生成。我还没有Raspberry PI,但我不希望有任何花哨的开发工具集(这一点我可能错了)

最后,对于好奇的内部人士来说,该系统是一个股票筛选器,生成带有指标的图形,这些指标放在web服务器中,并通过Yahoo Messenger生成警报(发送价格状况通知)(这种选择主要是由于源代码的可移植性和可用性)

我非常感谢您的帮助,帮助我找到一种方法来实现/嵌入到C*任何实现了DOM接口的Javascript解释器中

问候


Alfredo Meraz

NodeJS应该表现得足够好,即使是在Raspberry Pi上,并且提供了一个无头浏览器,因此没有真正的理由限制使用C。您可以用Javascript完成整个项目。但是如果你打算使用C,你应该考虑使用或。如果您设置一个无头X服务器,这可能是最简单的。请记住,这些浏览器引擎是用C++编写的,所以你可能需要在任何被曝光的C++类上写C包装。非常感谢你的快速响应杰姆斯…我看不到(也看不到)如何使用NodeJS,因为到处都说它在服务器端工作。。。我很喜欢Zombie的编程方式,但是a)找不到嵌入它的方法b)因为它需要NodeJ,我把它用在服务器端(对不起,我可能在这方面错了),c)python是一个不需要的扩展。。。我并不是真的局限于C本身,而是我自己设定的一个边界。。。我真的不会考虑把我写的4000行C移到JavaScript…感谢您对Chromium Embedded的建议:-)服务器端和Raspberry Pi之间没有区别。服务器端只是一个角色,Raspberry Pi可以成为与任何其他平台一样好的Linux服务器?想知道你用的是什么,如果你碰到任何颠簸。。。