本意是用来做服务端渲染的,因为我司前端是使用的React,搜索引擎收录惨不忍睹。本来React有服务端渲染,但是由于前端比较忙,所以这脏活我来做了。(此方案已放弃……)

jBrowserDriver

首先是 jBrowserDriver ,功能感觉挺多的,而且依赖少,用起来也简单。兼容Selenium WebDriver规范(我瞎翻译的)。可惜js支持不是特别的好。以后如果有类似的需求,可以尝试用这个。

HtmlUnit

HtmlUnit 宣称可以模拟IE,FF,CHROME,可惜js好像一直抛错,貌似连较新的jquery都不支持。API设计的挺好的。

SeleniumHQ

Selenium 这货就是操作浏览器,感觉很厚重,使用也略复杂。

Ui4j

ui4j 这货应该就是一个基于JavaFX Webkit的浏览器,是的,是一个浏览器。然而对React神奇的语法还是不支持。

GhostDriver

GhostDirver 这个就是把phantom.js作为后端,当作一个浏览器,直接通过Selenium的Web Driver进行调用,最终选用的这个。 然而作者要弃坑了,这是一个fork,不过凑合用用也行。

服务端解析过程

用户(爬虫)发来请求——-》服务端从redis获取渲染之后的html(没有就去爬)——–》爬虫再次请求静态文件(css,js,png)——-》303到真实服务器