更多>>关于我们
西安鲲之鹏网络信息技术有限公司从2010年开始专注于Web(网站)数据抓取领域。致力于为广大中国客户提供准确、快捷的数据采集相关服务。我们采用分布式系统架构,日采集网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效获取互联网任何公开可见信息。
您只需告诉我们您想抓取的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。
数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。
更多>>技术文章
如何突破防采集策略-限制访问频率
发布时间:2012-06-21
目前常见的Web反采集策略大概有以下几种:
- 1)数据加密;
- 2)限制访问频率;
- 3)数据以非文本形式展现;
- 4)验证码保护;
- 5)Cookie验证;
本文主要探讨一下如何突破”限制访问频率”:
“限制访问频率”的原理:
服务器端程序(例如,WAF)维护了一个客户端(IP)的访问计数,如果客户端(IP)请求频率超过阈值,请求就会被拦截,通常会出现下列情形:
- 1)最常见的:返回403或503错误。
- 2)连接被重置。
- 3)最令人头疼的:返回无效的内容
突破方法:
- 1)使用HTTP代理。因为服务端是根据IP进行限制的,通过使用代理就可以将下载量平均到多个IP上。需要注意的是透明代理往往是无效的,因为WAF能够检测到真实的源IP,所以要使用隐秘(secret)代理。
- 2)增加请求延迟。比如,WAF限制单IP请求频率不能超过20次/分钟,我们可以在两次请求之间增加5S的延迟,这样下载频率就是12次/分钟,就不会被拦截了。
通常我们会将1)和2)的方法结合,这样即能防止被拦截,又能加快采集速度。例如,使用10个代理,每次下载增加5S延迟,一分钟的实际下载量就是:120次。 - 3)利用搜索引擎缓存(Google,Bing,百度)。“曲线救国”策略,绕过目标服务器,从搜索引擎的缓存进行采集。而且缓存里的页面的结构和原页面是一样的,不用重写提取规则。
- 4)谷歌翻译。让谷歌作为我们的“代理”,将源语言和目标语言都设置成一样,这样从谷歌翻译结果获取的数据和原页面就是一样的(注意,HTML结构有很大变化,需要重写提取规则)。
- 5)对于返回无效内容的情况,一定要找到检测内容是否有效的方法,否则很难保证所有数据都是正确的。
例如,美餐网的菜单,如果采集过快返回的菜单项目就是随机的,如下图所示:
上图是正常数据
上图是无效数据
鲲鹏数据的技术人员通过仔细分析页面源码,最后发现了规律:正常页面的菜单项ID基本上都是连续的,而随机内容的菜单项ID是随机的。
基于这一特征我们就能用程序检测出返回的内容是否有效,只处理有效的数据,无效的内容进行重新采集。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
☹ Disqus被Qiang了,之前所有的评论内容都看不到了。如果您有爬虫相关技术方面的问题,欢迎发到我们的问答平台:http://spider.site-digger.com/