Tag: phantomjs jsdom

如何pipe理PhantomJS实例的“池”

我正在计划一个webservice供我自己使用内部使用一个参数,一个URL,并返回表示从该URL parsing的 DOM的HTML。 通过解决我的意思是,Web服务将首先获得该网页,然后使用PhantomJS'呈现'页面,然后返回所有的DHTML,AJAX调用等执行后产生的源。 然而,基于每个请求(我现在正在做的)启动幻影的方式太慢了。 我宁愿有一个PhantomJS实例池,总是有一个服务于我的web服务的最新调用。 以前有没有做过这方面的工作? 我宁愿将这个web服务基于其他人的工作,而不是从头开始为自己写一个池pipe理器/ http代理服务器。 更多的上下文 :我已经列出了目前为止我见过的两个类似的项目,以及为什么我避免了每个项目,结果导致这个关于pipe理一个PhantomJS实例池的问题。 jsdom – 从我看到它有很好的function来执行页面上的脚本,但它不会尝试复制浏览器的行为,所以如果我使用它作为一个通用的“DOMparsing器”,最终会成为很多额外的编码来处理各种边界情况,事件调用等。我看到的第一个例子是手动调用我使用节点设置的testing应用程序的body标签的onload()函数。 这似乎是一个深刻的兔子洞的开始。 Selenium – 它只有很多更多的移动部件,因此设置一个池来pipe理长期浏览器实例将比使用PhantomJS更复杂。 我不需要它的任何macros录制/脚本的好处。 我只是想要一个web服务,就像获取网页和parsing它的DOM一样,就好像我正在用浏览器浏览这个URL(或者如果我可以让它忽略图像等甚至更快)。