为什么浏览器可以保存网页中js动态内容,用java编写的爬虫却无法抓取
2个回答
展开全部
rhino: 本身只是java界用来处理js脚本的一个脚本引擎,跟浏览器这种大而全的东西还差的远,摘一段官方的说明:“Rhino 是一个完全使用Java语言编写的开源JavaScript实现。Rhino通常用于在Java程序中,为最终用户提供脚本化能力。”,这里主要反映了一个问题,看到没,人家也只是当一个脚本解释引擎,你传递进去它就执行,它不认识html这些文本,如果爬虫要解析页面上的js,需要你先对html上的js自己解析一遍,拿出来,放到rhino里面解释,解释完了以后又要保留这个Context,要知道js在浏览器上执行都是有Context的,在JDK8里面乌龟壳又引进了Nashorn这个新的引擎,最重要的是对一些新的js语法和规范提供了支持,但是跟真正的浏览器js引擎相比还是有点差别,想必你也没听说过哪家的前端还专门为rhino/Nashorn提供兼容的吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询