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


    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的爬虫来说,防治作用不是很大。以我之陋见,还可考虑使用:随机字体[保证美观前提下]、增加干扰动画色块[力求整洁避免杂乱]、鼠标悬停显示信息[提示“为了您的隐私请…”]等方法来继续改进,当然每种方案均需反复测试论证,用户体验才是第一位的。

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

  • 相关阅读:
    Django cache (缓存)
    Django CSRF
    Django 中的 Cookie 和 Session
    Django views 中的装饰器
    Ajax 基础
    JavaScript 对象
    Django ORM 操作
    Django 视图
    Django 路由系统
    Django 模版语言
  • 原文地址:https://www.cnblogs.com/lexus/p/2798809.html
Copyright © 2020-2023  润新知