大规模抓取的抓取效率和抓取技巧问题
####
大规模抓取的抓取效率和抓取技巧问题
这个话题,只在大规模的时候有用,抓取几十个网页,其实差别不大,不需要这个问题,
###
第一个问题,
输入url,到返回数据发生了什么
这个你面试可以说是一个经典的面试题,
对这个问题越了解,你越能优化大规模的抓取,考验的是你的综合能力,
###
客户端发起请求,
###
dns解析,要连接dns服务器,
可以使用直接ip访问,绕过dns解析,这就节省了时间,
可以使用cmd命令,dig,查看dns解析域名的耗时,
在大量的抓取的时候,可以节省很多时间,
####
cdn服务器,这个是大型网站,需要用这个来分发,根据物理地址来分发不同的请求到不同的服务器,可以减轻压力,
这个不理解,需要再次了解,
指定了cdn服务器,可以请求更多次,
可以通过不同的省份的ip,去ping这个域名,把所有的cdn服务器的节点ip全都拿到,
如果一个cdn可以抓取100次,就要屏蔽你,那你换了cdn服务器之后,假设32个cdn,可以是100*32次,才会屏蔽你,
很多网站会对图片和视频,来做cdn服务,
抓取视频的时候,就应该使用这个cdn的优化,
###
负载均衡
这个也是大型网站才会有这个,小网站没有,
###
抓取技巧,
一个网站可能有web,app,h5,三套,
不同的端,背后可能是不同的ip,
我们可以极限使用ip,
###
sitemap,这个是seo优化的一部分,
天眼查就有这个,里面所有的url都有,
这种尤其是小说,漫画,新闻这样的网站,会把所有的图书,所有的章节都放在这个地方,
可以在robot里面看到,
###
测试站,灰度站,
这个地方往往没有ip限制,就可以安心抓取
有网站可以把一个域名的所有二级域名都拿到,我们就可以发现一些线索,
####
网站接口工具扫描,
可以发现对外没有暴露的api,
这个可以更方便的抓取,
####
url规律抓取,
比如id是自增的
所以拿到一个网站之后应该是先分析,先玩一玩一个网站,
###
账号问题,可能不同的端对账号的限制不一样的,
可能就能绕过账号的问题
另外账号也有网站上卖的,比如天眼查的账号
###
抓需要登陆的数据
1,实打实的登陆
2,手动登陆,拿到cookie,
账号要养的,
而且要测试网站的屏蔽阈值,根据这个,可以算出来爬取成本的,
###
验证码的问题,
少去对刚人家的风控,
什么时候会触发验证码?
比如你抓取天眼查,你的header一直不变,比如header里面的refer一直不变,这就不可能,就会触发验证码
账号异地登陆,也会,
脏ip,这个ip被标注了,
对抗验证码,这个不推荐,我们是要拿数据,不是要硬刚别人,你硬刚,别人就会搞你,
但是你要永久抓取方案呢?有人会去重构requests库,可以抓取每天3000-50000万,拿去卖数据,这种就要硬刚了,
做舆情的,就要做永久性抓取方案,
遇到验证码,可以绕过,可以通过换ip,
###