之前的博客:
爬虫学习系列02-常见的下载和抽取网页的方法
爬虫学习系列03-下载缓存
爬虫学习系列04 - 并发下载
上一节我们实现了并发爬取功能,但是还存在着缺陷,那就是对于使用JavaScript的动态网站,这种网页在浏览器中展示的内容有许多都不会出现在html源代码中。
书中提供了两种方法解决此类问题:
1. JS逆向工程
2. 渲染JS
一、对动态网页进行逆向工程
针对性地分析说要爬取的网页,找到其请求数据的AJAX请求url,根据此url获得动态网页中的数据,然后解析返回的json数据。
通用性太差。
二、渲染动态网页
使用浏览器的渲染引擎,也即是,解析html、应用css样式、执行js语句。说白了就是模拟浏览器的行为,然后得到渲染后的数据。
可以使用webkit、selenium等类似的库来实现。