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

时间:2017-05-16 15:30:23

标签: javascript node.js cookies browser request

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

  1. 我可以设置任何HTTP信息,如Cookie,标题,正文。所以要按照我的意愿构建HTTP请求。
  2. 发出请求后,所有响应数据都应该是可读的,例如Set Cookie ....
  3. 如果在会话期间可以自动保存cookie,那就太棒了。因此,每次提出所有进一步的请求时,我都不需要包括它们。
  4. 所以只需模拟一个真实的浏览器以保持会话
  5. 是否有可以提供此类功能的框架库?

2 个答案:

答案 0 :(得分:13)

对于不需要解析HTML或运行客户端JavaScript的情况,可以使用Request或SuperAgent等简单工具:

对于更复杂的场景,您可以使用JSDom等工具:

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

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

更多选项:

答案 1 :(得分:2)

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