节点JS浏览器模拟(cookies,会话,标题)

我需要像一个普通的浏览器从节点js请求。 我是什么意思?

  1. 我可以设置任何HTTP信息,如Cookie,标题,正文。 所以要build立HTTP请求,我想要的。
  2. 请求发出后,所有的响应数据应该是可读的,比如Set Cookie ….
  3. 如果可以在会话期间自动保存cookie,那将会很棒。 所以我不需要在每次进一步提出请求时都包含它们。
  4. 所以只需模拟一个真实的浏览器来保持会话

有没有任何框架的库可以提供这样的function?

对于不需要parsingHTML或运行客户端JavaScript的情况,可以使用简单工具(如Request或SuperAgent):

对于更复杂的场景,你可以使用JSDom之类的工具:

对于更复杂的情况,您可以使用PhantomJS等工具:

像PhantomJS,无头Chrome或其他一些无头浏览器,而不仅仅是一个DOM实现,将是最灵活的,因为它是一个真正的浏览器,只是没有一个可见的窗口。 JSDom和类似的工具是DOM实现,其中一些可以执行客户端JavaScript,但这些不是真正的浏览器。 而像Request和SuperAgent这样简单的HTTP客户端,它们本身并不parsingHTML或执行客户端脚本,但仍然可以处理cookie和头文件。

更多的select:

使用最新版本的Chrome / Chromium,您可以直接在无头模式下使用它们。
以下是将Chromium添加到NodeJS项目并允许在无头模式下执行自动化的软件包: https : //github.com/dtolstyi/node-chromium