网页有静态网页、动态网页之分,爬取动态网页,我们能够怎么做?黑洞代理下面为大家推荐两个爬取策略,各自的优缺点也为大家进行分析。
在爬虫过程中,一般情况下都是直接解析html源码进行分析解析即可。但是,有一种情况是比较特殊的:网页的数据采用异步加载的,比如ajax加载的数据,在我们“查看网页源代码”是查看不到的。采用常规的爬虫这一块是解析不到的。
第一种解决方案是分析页面,找到对应请求接口,直接获取数据。
优点:性能高,使用方便。我们直接获取原数据接口(换句话说就是直接拿取网页这一块动态数据的API接口),肯定会使用方便,并且改变的可能性也比较小。
缺点:缺点也是明显的,如何获取接口API?有些网站可能会考虑到数据的安全性,做各种限制、混淆等。这就需要看开发者个人的基本功了,进行各种分析了。
第二种解决方案是采用一些第三方的工具,模拟浏览器的行为,去加载数据。比如:Selenium、PhantomJs。
优点:不必考虑动态页面的各种变化多端(无论动态数据如何变化,最终呈现在页面上的效果是固定的),我们只用关心最终的现实结果即可;可以统一处理。
缺点:性能低下,比如使用Selenium,每次我们都需要去启动一个浏览器进程;配置繁琐,不同的浏览器需要下载不同的驱动以及jar包,并且驱动和jar包之间有严格版本匹配关系,如果不匹配就不能使用。
大家选择哪一种,那就要看看是优点胜于缺点还是缺点比较致命了。
相关文章内容简介
1 动态网页爬虫策略
网页有静态网页、动态网页之分,爬取动态网页,我们能够怎么做?黑洞代理下面为大家推荐两个爬取策略,各自的优缺点也为大家进行分析。 在爬虫过程中,一般情况下都是直接解析html源码进行分析解析即可。但是,有一种情况是比较特殊的:网页的数据采用异步加载的,比如ajax加载的数据,在我们“查看网页源代码”是查看不到的。采用常规的... [阅读全文]
最新标签
推荐阅读
热门文章
在线咨询
客户经理
公众号
关注公众号,免费领试用
大客户