网站防爬虫封禁:资深站长踩过坑才摸出来的实战经验
前年我差点把做了五年的垂直站搞废。就因为防爬虫操作太蠢,流量直接掉了70%,半个月睡不好觉,天天蹲站长平台看抓取错误。说出来你可能不信,九成新手站长第一次防爬虫,都会犯和我一样的错。
最容易踩的致命坑:你封了爬虫,顺便把自己站也封没了
刚做站那会,我没注意后台的访问日志,直到服务器短信发了带宽用尽的提醒,我才登进去看——好家伙,一天120万请求,90万都是采集电商数据的爬虫,一半内容都被爬走挂到别的垃圾站了。
我当时急眼了,直接在服务器防火墙封了三个IP段,拍着胸脯觉得万事大吉。
结果第三天,百度站长平台就给我发了一堆抓取异常提醒。我一看,得,把百度蜘蛛的IP段也封进去了。
整整一周,新内容不收录,老内容排名掉的一干二净,我连夜改规则,花了快一个月才把流量慢慢拉回来。
太蠢了。真的。
很多人根本分不清,不是所有爬虫都该封。搜索引擎的爬虫是给你送流量的爹啊,你把人拦在外头,不等着被K吗?该封的是那些抢你内容、耗你资源的商业采集爬虫、恶意刷流量的爬虫,对吧?
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/5c6045b1-90a0-47ad-9d35-45b4c94b8820.jpg
robots.txt网站爬虫封禁错误写法示例
还有人乱改robots.txt,把整站都禁了索引,上线半年都没流量,还跑来问我为什么百度不收录,我都不知道该怎么吐槽。
成本最低的分层防护:小站不用砸钱买WAF也能防住9成爬虫
说实话,小站日访问量几万顶天,犯不着一开始就花大几百买专业防爬服务。分层来做,成本几乎为零,还能拦住大部分爬虫。
第一层,先筛低端爬虫。把烂大街的爬虫UA直接丢进黑名单,什么python-requests、scrapy、curl这些,90%的菜鸟爬虫用的都是默认UA,直接拦,能省一大半服务器资源。
对了,别忘了给Nginx加个IP请求频率限制。单个IP10秒内请求超过30次,直接弹验证码或者禁10分钟。正常用户谁会十秒刷三十页啊?完全不影响体验,还能拦住大部分只会疯狂刷新的笨爬虫。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/dc058145-7258-4d53-8df9-48da00e4d1dd.jpg
Nginx单个IP请求频率限制配置代码
第二层,防中端爬虫。现在有些爬虫会换UA换IP,那怎么办?
很简单,把你网站的核心内容改成JS异步加载。比如你是内容站,正文的关键段落;你是电商站,产品的价格和参数,都用异步加载。大部分低端爬虫不执行JS,爬回去全是空内容,自然就走了。
我自己两个站都是这么干的,原来每天几十万爬虫请求,现在直接降到几万,省了快一半的服务器成本。
真的好使。
第三层,防高端爬虫。如果碰到那种专门盯着你爬的,换IP换UA还执行JS,那你就得加个访问特征检测了。
正常用户访问哪有规律啊?都是点首页点列表点详情,偶尔回退,偶尔跳分类。爬虫不一样,它会按ID递增爬你的详情页,路径规整的可怕,甚至不会加载图片CSS这些静态资源,一抓一个准,碰到这种直接封IP就行。
这些烂操作千万别碰:防爬虫不成反把自己玩死
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/64ad8a09-cfd1-43f3-b32e-0657573ab9e1.jpg
这些烂操作千万别碰:防爬虫不成反把自己玩死
不过话说回来,我见过太多站长为了防爬虫,乱操作最后把自己站搞废的,给你们列几个最常见的坑。
第一个,随便封整个IP段。很多爬虫用的是云服务商的动态IP,你直接把阿里云、腾讯云整个IP段都封了,不光爬虫,很多用云服务器上网的正常用户也进不来,还有搜索引擎爬虫也在这些段里,你这不就是自断活路吗?封单个IP就够了,别碰整个段。
第二个,过度防护。我见过一个站,用户翻三篇文章就要输一次验证码,点个评论也要验证,我直接关站走人,再也不去了。你防了爬虫,把真实用户都赶跑了,跳出率飙升,搜索引擎自然会给你降权,得不偿失。防护要适度,别搞的用户体验一塌糊涂。
第三个,给爬虫设陷阱页。很多人说把爬虫引到死链陷阱里,让爬虫爬一堆垃圾,就能劝退,现在搜索引擎早就能识别出来了,搜索引擎会觉得你的站有大量垃圾内容,直接给你降权,偷鸡不成蚀把米。
第四个,上来就砸钱买天价防爬服务。小站日流量不到一万,瞎买什么几千块一年的WAF?自己按我说的分层弄,足够用了。等你站做大了,日流量几十万了,再上专业服务也不迟,没必要一开始就交智商税。
防爬虫从来不是越狠越好,核心是精准——拦得住恶意采集的,放得好搜索引擎,不影响正常用户。这几年我帮十几个朋友调过防爬虫规则,大多原来带宽被占了七八成,调完之后直接降到一成多,流量稳了,服务器成本还降了,爽的很。
要是你也被爬虫折腾的头疼,不妨按这个思路试试,少踩点我当年踩过的坑。 看完感觉打开了新思路,以后遇到类似情况知道该怎么处理了。 这个话题确实很值得讨论,我也有类似的经历,非常认同楼主的观点。 感谢楼主无私分享经验,少走了很多弯路,对我们帮助特别大。 观点很成熟,分析也很理性,值得大家静下心来认真看一看。
页:
[1]