使用Phantomjs来处理针对js渲染的页面的爬取

对于爬虫来说,主要的任务就是获取页面的内容,从最初页面直接后端渲染结果后输出到后端输出模版再使用ajax等技术来渲染数据,而随着前端技术的发展,越来越多的网站开始使用纯js来渲染页面,比如Vue、React等。

而对于爬虫来说,想要获取页面内容,也从最初的直接拿到页面内容,变成了针对不同页面针对性写爬取规则,比如A页面,有3个ajax用来获取渲染数据,那么就要对于爬取A页面的爬虫,就要再写3个针对ajax的数据爬取

而当需要爬取的页面越来越多的时候,如何能提升效率呢?

于是,针对页面的解析工作,就交给了一些浏览器核去处理了,Phantomjs就是一个基于webkit的js api,能够实现浏览器的功能,这样我们将一个页面输入给Phantomjs,其就如同一个浏览器一样,去解析执行这个页面,获取最终展示的结果。

这两种方式各有优缺点:

针对页面写特定爬虫,准确,执行效率快,维护性差,一旦页面接口变动则需要根据变动修改爬虫

Phantomjs通用性高,不需要针对特定页面去写,但执行速度慢(相当于浏览器访问页面了,其所有网络访问都渲染完成了才结束)

那么如何使用Phantomjs呢?

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180131G0XF6J00?refer=cp_1026

相关快讯

扫码关注云+社区