node.js 页面渲染模块
发布于 2年前 作者 342479384 1417 次浏览

现在有一些爬取任务, 但有些站点的页面是需要先渲染,才能得到相应的数据。 直接拉源码分析。获取不到数据。 请问下,node.js 有没有相应的可以渲染页面的模块?

15 回复

这个可以渲染页面吗?

@342479384 一定要渲染的话用jsdom,不过性能不如cheerio,先试试cheerio吧

@zhihuzeye 我现在就是在使用jsdom ,不过貌似无法渲染。。 能加个QQ联系一下吗?

@342479384 你说的这个“渲染页面”具体指的什么?猜测你是想表达“网页上有些内容是异步加载的”? 首先请确定自己理解了你提到的那些“术语”

@bigfang 有可能是异地加载的,有些数据,直接查看页面源代码看不到相应的值,但是浏览器有显示。懂不?呵呵

http://phantomjs.org/ 你需要这个玩意。。。

之前用过这个,不过速度太差,而且易崩溃。不知是不是不会用的原因

这个,你有实用的示例嘛?

@342479384 没办法,速度的确是硬伤,不过这也没办法啊。。。。我的解决策略就是先用cheerio 进行页面的解析,然后,自己分析页面把那些异步加载的dom 丢到另外一个队列去,然后修改dom 里面的引用。这也就算崩溃也不会影响到主任务,然后记录,奔溃日志,不断重新跑就好了。。

@342479384 这个不好分享。。。。因为这个没有通用性。。

@342479384 其实我觉得cheerio + request 跟符合你的需求,用cheerio 解析页面,把那些异步加载的请求给request 处理,页面的相关请求规则可以用firebug 来找出来。最后可以在本地用jquery 把数据整合起来

@youxiachai 谢谢。不过貌似有点太折腾了。。我看下。。

回到顶部