备案 新增网站,重庆璧山网站制作公司哪家专业,3g下订单的网站怎么做,网站开发后端做那些爬虫(Spider)#xff0c;反爬虫(Anti-Spider)#xff0c;反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争...
Day 1 小黄想要某站上所有的电影#xff0c;写了标准的爬虫(基于HttpClient库)#xff0c;不断地遍历某站的电影列表页面#xff0c;根据 Html 分析电影名字存进…爬虫(Spider)反爬虫(Anti-Spider)反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争...
Day 1 小黄想要某站上所有的电影写了标准的爬虫(基于HttpClient库)不断地遍历某站的电影列表页面根据 Html 分析电影名字存进自己的数据库。 这个站点的运维小安发现某个时间段请求量陡增分析日志发现都是 IP(xxx.xxx.xxx.xxx)这个用户并且 user-agent 还是 Python-urllib/2.7 基于这两点判断非人类后直接在服务器上封杀。 Day 2 小黄电影只爬了一半于是也针对性的变换了下策略1. user-agent 模仿百度(Baiduspider...)2. IP每爬半个小时就换一个IP代理。 小安也发现了对应的变化于是在服务器上设置了一个频率限制每分钟超过120次请求的再屏蔽IP。 同时考虑到百度家的爬虫有可能会被误伤想想市场部门每月几十万的投放于是写了个脚本通过 hostname 检查下这个 ip 是不是真的百度家的对这些 ip 设置一个白名单。 Day 3 小黄发现了新的限制后想着我也不急着要这些数据留给服务器慢慢爬吧于是修改了代码随机1-3秒爬一次爬10次休息10秒每天只在8-1218-20点爬隔几天还休息一下。 小安看着新的日志头都大了再设定规则不小心会误伤真实用户于是准备换了一个思路当3个小时的总请求超过50次的时候弹出一个验证码弹框没有准确正确输入的话就把 IP 记录进黑名单。 Day 4 小黄看到验证码有些傻脸了不过也不是没有办法先去学习了图像识别关键词 PILtesseract再对验证码进行了二值化分词模式训练之后总之最后识别了小黎的验证码关于验证码验证码的识别验证码的反识别也是一个恢弘壮丽的斗争史...之后爬虫又跑了起来。 小安是个不折不挠的好同学看到验证码被攻破后和开发同学商量了变化下开发模式数据并不再直接渲染而是由前端同学异步获取并且通过 JavaScript 的加密库生成动态的 token同时加密库再进行混淆比较重要的步骤的确有网站这样做参见淘宝和微博的登陆流程。 Day 5 混淆过的加密库就没有办法了么当然不是可以慢慢调试找到加密原理不过小黄不准备用这么耗时耗力的方法他放弃了基于 HttpClient的爬虫选择了内置浏览器引擎的爬虫(关键词PhantomJSSelenium)在浏览器引擎运行页面直接获取了正确的结果又一次拿到了对方的数据。 小安..... 爬虫与发爬虫的斗争还在继续...
通常情况下在爬虫与反爬虫的对弈中爬虫一定会胜利。
换言之只要人类能够正常访问的网页爬虫在具备同等资源的情况下就一定可以抓取到。
关于爬虫部分一些建议 尽量减少请求次数能抓列表页就不抓详情页减轻服务器压力程序员都是混口饭吃不容易。 不要只看 Web 网站还有手机 App 和 H5这样的反爬虫措施一般比较少。 实际应用时候一般防守方做到根据 IP 限制频次就结束了除非很核心的数据不会再进行更多的验证毕竟成本的问题会考虑到。 如果真的对性能要求很高可以考虑多线程(一些成熟的框架如 Scrapy都已支持)甚至分布式...
关于反爬虫部分的一些建议
这篇文章就够了携程技术中心 - 携程酒店研发部研发经理崔广宇 爬虫与反爬虫 技术分享