• 关于防止网站被爬虫抓取的几点可能性的对策


    iDaemon

    关于防止网站被爬虫抓取的几点可能性的对策

    近年来随着Web2.0的兴起,每天都有海量数据在互联网上生成,数据挖掘越来越火,其中网络爬虫(Spider/Crawler)的迅猛发展就是其中的表现之一。

    然而,自家的网站被恶意爬虫抓取并不是什么好事,一来有商业信息被同业竞争对手利用的可能,京东屏蔽一淘抓取就是基于此;二来也对有限的服务器资源造成了大量的浪费,甚至影响正常的业务开展。

    根据个人对抗爬虫经历中的一点点体会,更重要的是还有参阅众多前辈高人的智慧结晶,将几点浅陋的可能对策列举如下:

    a) 对于最低级的爬虫,检测http头中的User-Agent,放行搜索引擎爬虫和主流浏览器,其余UA予以拦截;

    b) 为了对付伪装UA成正常访问的爬虫,可以在页面放置js统计。由于爬虫一般不执行js,对于服务器访问日志中有记录但js统计中无对应记录的IP,予以拦截;

    c) 对于模拟正常页面访问的爬虫,根据js统计结果,结合分析页面停留时间与页面访问数量,符合一定规则的(停留时间短且数值浮动小,页面访问量大)予以拦截;

    d) 定期分析汇总服务器某段时间的访问IP记录,利用脚本统计出访问量过高(如日PV数5000以上)的IP/IP段列表,统一查询该IP段WHOIS信息、归属地,以检测未知的合法爬虫IP段或揪出恶意爬虫中的漏网之鱼;

    e) 至于前端页面的处理,可以考虑敏感信息图片化(如手机号),但对于使用python等编写、具有OCR功能、能够执行js的爬虫来说,防治作用不是很大。以我之陋见,还可考虑使用:随机字体[保证美观前提下]、增加干扰动画色块[力求整洁避免杂乱]、鼠标悬停显示信息[提示“为了您的隐私请…”]等方法来继续改进,当然每种方案均需反复测试论证,用户体验才是第一位的。

    如有谬误或不足,欢迎大家指正。

  • 相关阅读:
    C++STL中的unique函数解析
    STL中erase()的用法
    刷题技巧——简易哈希表的实现
    经典面试题目——找到第n个丑数(参考《剑指offer(第二版)》面试题49)
    C++中sort函数小结
    谈谈交叉验证法(个人小结)
    数字序列中某一位数字(《剑指offer》面试题44)
    求1~n整数中1出现的次数(《剑指offer》面试题43)
    2018年美团春招(第二批)题解
    C/C++中字符串和数字互转小结
  • 原文地址:https://www.cnblogs.com/lexus/p/2798809.html
Copyright © 2020-2023  润新知