我想通过Tor网络加载html内容并执行JavaScript以通过此网络通过AJAX加载其他内容。这必须通过在Linux服务器上运行而无需任何人工交互的脚本自动完成。我找不到能够自动执行通过Tor网络传输的JavaScript的工具组合。
我想编写一个具有以下特征的应用程序:
环境
功能
环境限制禁止使用Web浏览器。一切都必须通过程序或脚本完成。功能限制强制执行JavaScript,不直接连接到互联网,而是通过Tor网络。
Tor
要使用Tor网络,我可以运行在我的机器上提供套接字的Tor客户端。然后我编写一个连接到此套接字的Perl脚本。 Perl脚本通过此套接字将http和https请求发送到Tor客户端,Tor客户端随后通过Tor网络对其进行路由。所有的反应都是一样的。
我测试了这个,它运行正常。但是在Perl脚本中,执行收到的html文档附带的JavaScript真的很难。我不得不在Perl中编写一个JavaScript模拟器来实现这一点,但这超出了我的可用时间和超出我的技能。
的JavaScript
要执行嵌入式或附加的JavaScript我可以使用像phantomJS或slimerJS这样的工具(phantomJS在Ubuntu 12.04上无法正常工作,所以我使用slimerJS提供几乎相同的功能)。使用这些工具,我可以加载html文档并自动获取随附的所有JavaScript,因此我还会收到所有内容,这些内容不是最初的html文档的一部分,但稍后会被Ajax或类似技术加载。此外,我可以轻松地分析文档的DOM树,以提取我感兴趣的项目。
我也测试了它,它也可以正常工作,但我知道的工具(phantomJS和slimerJS)使用自己的程序连接到互联网。似乎没有办法告诉他们连接到套接字并使用它通过互联网进行通信。
有没有办法通过Tor网络自动执行Ajax调用?
对我而言,似乎存在两种可能的方式: