我需要从Node.js发起请求,就像普通浏览器一样。什么意思?
- 我可以设置任何HTTP信息,比如cookies,headers和body等。因此可以按照自己的要求构建HTTP请求。
- 请求完成后,所有响应数据都应该是可读的,例如“Set Cookie”……
- 如果能自动保存cookie在会话期间,那就太好了,这样每次发出请求时就不需要再包含它们。
- 因此,只需模拟真实浏览器以保留会话。
是否有任何库或框架可以提供这样的功能?
我需要从Node.js发起请求,就像普通浏览器一样。什么意思?
是否有任何库或框架可以提供这样的功能?
如果您不需要解析HTML或运行客户端JavaScript,可以使用简单的工具,例如Request或SuperAgent:
对于更加复杂的情况,您可以使用类似JSDom的工具:
对于更加复杂的情况,您可以使用像PhantomJS这样的工具:
与仅具有DOM实现不同,PhantomJS、Headless Chrome或其他无界面浏览器将是最灵活的选择,因为它是一个真正的浏览器,只是没有可见窗口。 JSDom和类似工具是DOM实现,其中一些可以执行客户端JavaScript,但它们不是真正的浏览器。而像Request和SuperAgent这样的工具是简单的HTTP客户端,它们不会自己解析HTML或执行客户端脚本,但仍然可以让您处理cookie和header。
更多选项:
最新版本的Chrome / Chromium可以直接在无头模式下使用。
这是一个软件包,将Chromium添加到您的NodeJS项目中,并允许以无头模式执行自动化:https://github.com/dtolstyi/node-chromium