电商平台的核心引擎大致分为两块,搜索架构和产品布局,应该说各有各的特色。当然今天的主题是反爬虫机制,电商平台如何能保护好自己的数据,又不影响正常用户体验,所谓当今业界一场持久的攻防博弈。
一阶爬虫(技术篇)
应用场景一:静态结果页,无频率限制,无黑名单。
攻:直接采用scrapy爬取
防:nginx层写lua脚本,将爬虫IP加入黑名单,屏蔽一段时间(不提示时间)
应用场景二:静态结果页,无频率限制,有黑名单
攻:使用代理(http proxy、VPN),随机user-agent
防:加大频率周期,每小时或每天超过一定次数屏蔽IP一段时间(不提示时间)
应用场景三:静态结果页,有频率限制,有黑名单
攻:使用代理,随机1-3秒爬取,爬10秒休息10秒,甚至范围时间爬取,增加机器
防:当5分钟内请求超过60次,弹出验证码页面,通过验证增加5分钟无限制时间,不通过验证码则屏蔽增加一小时 (时间自拟)
应用场景四(Amazon):静态结果页,有频率限制,有黑名单,有验证码
攻:python+tesseract验证码识别库模拟训练,或基于tor、crawlera(收费)的中间件(广度遍历IP)
防:前端异步加载js,动态加密token
应用场景五(Aliexpress):动态结果页,有频率限制,有黑名单,有验证码
攻:python+Selenium,利用chrome内核加载动态结果页,更推荐用node+hex+ie内核做一个爬取客户端。java程序可以参考《简单破解Java浏览器组件jxbrowser》
防:见二阶爬虫
一阶爬虫属于单纯的技术性博弈,下面开始真正的人机交互博弈 (更多…)