第二天,对方的爬虫换了策略。
不再是高频密集的抓取,而是降低了频率,变得更加隐蔽,混在真实用户的访问流量里,很难分辨。
赵磊和小李花了整整一个上午分析流量日志,现了一个规律——爬虫访问的页面路径是固定的,而真实用户的路径是随机的。
基于这个现,赵磊在反爬虫系统里加了一层行为分析的逻辑:连续访问同一个类型的数据过一定次数,自动标记为可疑,加入黑名单。
第三天,对方的程序员大概也现了这个规律,开始随机化访问路径,模仿真实用户的行为模式,不再只抓航班和酒店数据,而是随机地访问页、用户中心、订单页面等无关内容。
赵磊看到流量日志的时候,盯着屏幕看了好一会儿,然后说了一句让俞飞鸿印象深刻的话。
“对面的人很聪明。”
俞飞鸿看着他。
“但聪明人也会犯错。”
那天下午,赵磊现了一个漏洞——对方的爬虫在访问的时候,每一次请求的间隔时间精确到了毫秒级,而真实用户的操作间隔是随机的,有长有短,不可能这么规律。
基于这个现,赵磊在反爬虫系统里加了一个“行为随机性检测”
的模块,专门识别这种过于规律的访问模式。
第四天凌晨,系统正式上线。
俞飞鸿坐在赵磊旁边,看着屏幕上那条绿色的曲线。
红色的异常请求标记在一小时内从几千个降到了几十个,又过了半小时,降到了个位数。
赵磊靠在椅背上,仰着头看着天花板,长长地呼出一口气。
小李和小张坐在各自的工位上,谁都没有说话,但脸上的表情说明了一切——那种长期紧绷之后突然放松的、带着疲惫的、微微愣的表情。
“过了?”
俞飞鸿问。
赵磊低下头,看着屏幕上那条几乎看不到红点的绿色曲线。
“过了。”
俞飞鸿站起来,走到茶水间,倒了一杯水,喝了一口。
水是凉的,从喉咙一路凉到胃里,但她觉得舒服。
她拿出手机,看了一眼时间——凌晨四点二十。
她翻到陈浩的号码,按下拨出键,响了一声就接了。
“浩哥,你还没睡?”
“在等你的电话。
怎么样了?”
“反爬虫系统上线了,异常流量已经控制住了。
赵磊熬了四天,今天终于可以回去睡觉了。”
陈浩在电话那头沉默了一下。
“你呢?你熬了几天?”
“我不用写代码,我不累。”
“你每次都说你不累。”
俞飞鸿握着手机,靠在茶水间的墙上,没有接这个话。