gpt4 book ai didi

javascript - 在没有人工交互的情况下使用 Tor 网络执行 JavaScript

转载 作者:行者123 更新时间:2023-11-29 22:00:45 25 4
gpt4 key购买 nike

一言以蔽之

我想通过 Tor 网络加载 html 内容,并通过 AJAX 执行 JavaScript 以通过该网络加载其他内容。这必须通过在 Linux 服务器上运行的脚本自动完成,无需任何人工交互。我找不到可以自动执行来自 Tor 网络的 JavaScript 的工具组合。

详细

我想写一个具有这个特点的应用程序:

环境

  • 自主运行(无需任何人工交互)
  • 在非 GUI(“ headless ”)Linux 服务器 (Ubuntu 12.04) 上运行

特点

  • 使用 Tor 网络匿名加载 Web 内容(html 文档、图像...)
  • 执行嵌入或附加到 html 文档的 JavaScript(以通过 AJAX 或类似技术加载其他内容)
  • 当所有内容加载完成时:将 html 文档转换为 DOM 树并从该树中提取特定项目。

环境限制禁止使用网络浏览器。一切都必须由程序或脚本来完成。功能限制强制执行不直接连接到互联网但通过 Tor 网络连接的 JavaScript。

Tor

要使用 Tor 网络,我可以运行一个在我的机器上提供套接字的 Tor 客户端。然后我写了一个连接到这个套接字的 Perl 脚本。 Perl 脚本通过此套接字将 http 和 https 请求发送到 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调用?

对我来说似乎存在两种可能的方式:

  1. 在 Perl 脚本中执行 JavaScript 代码。这可以通过一个模块来完成,但我找不到任何模拟 JavaScript 解释器的 cpan 模块。解释器应该调用我必须编写的 Perl 函数,而不是直接连接到互联网。
  2. 强制 slimerJS(或 phantomJS 或任何其他工具)连接到本地主机上的套接字并通过此套接字发送所有请求。也许可以在假装提供直接访问互联网但实际上将所有通信重定向到 Tor 客户端套接字的环境中启动 slimerJS?

最佳答案

如果您正在运行 Tor 客户端,则可以使用其监听的地址进行代理设置。检查您需要传递的代理选项的文档:

代理类型将是 SOCKS。请记住,您需要将地址套接字绑定(bind)到本地。

关于javascript - 在没有人工交互的情况下使用 Tor 网络执行 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23904662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com