网站反爬虫策略

1.通过Referer判断

 //Referer: https://hotel.lixiuyang.com.cn/
 String referer = request.getHeader("Referer");
        String serverName = request.getServerName();
        //如果来源站外(爬虫)
        if(referer==null||referer.contains(serverName)){
            //跳转到异常页面
            return ;
        }

2.cookie分段机制

cookie: uuid_tt_dd=10_37460584560-1654044205095-234198; __gads=ID=e1df21c95845aaac-22ab55b59ed300cc:T=1654044206:RT=1654044206:S=ALNI_MYZZoNoRN7RqkSdd_ApFDqeBKIzvQ; c_dl_um=-; ssxmod_itna=mqIxRiDQuIGHD8D2BmDkDcDTDCbRqGkjYCQBfDBT4uxiNDnD8x7YDvCmhlQTQ0Se3P0bjY7oP5dib=o2iqNpF2xGLDmKDytW2+qDxOq0rD74irDDxD39D7PGmDinMXD7x6kgnrdKiODQ4GyDitDKLN/DG3D046dD46BU80/3eDSYYtomD=DjqGgDBdQ4=xnDDtro=hM+du=xYpWed0DxBQD7q2yRfiDCO6lIMd7=hoqG0h5t2xQFhDoB7G=t3O4Ki+1K2q3t+DQ07D267DfzG+eDD3q4rg3eD===; ssxmod_itna2=mqIxRiDQuIGHD8D2BmDkDcDTDCbRqGkjYCQBD8qpDuDGX6xGaKmmOsx82it5TF4KHMSooxidqgpde0iq6pu+TpZGiZ7t4Y1pZfmvOkz2p6wGM9w5Sj9YyKLjuNHUp1rUOgOiYlyBhGDAWMKYKQ5yb4rliY6uWnQGb02kmY=+BYEsROKwbYxWD7jox7=DedxxD===; UserName=riju4713; UserInfo=1b5a1875303b4bbcbdc4a807b44e2a50; UserToken=1b5a1875303b4bbcbdc4a807b44e2a50; UserNick=%E6%85%95%E5%AE%B9%E6%BD%87%E6%B9%98; AU=731; UN=riju4713; BT=1654080143528; p_uid=U010000; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22riju4713%22%2C%22scope%22%3A1%7D%7D; Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=6525*1*10_37460584560-1654044205095-234198!5744*1*riju4713; c_dl_fref=https://www.baidu.com/link; c_dl_prid=1654610936080_499818; c_dl_rid=1654611016893_553154; c_dl_fpage=/download/qq_43815828/12058042; c_first_ref=www.baidu.com; c_segment=6; dc_sid=93b40de07f67e56450c450049ca03af3; firstDie=1; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1656424592,1656458343,1656506734,1656758805; __gpi=UID=00000614e0944989:T=1654044206:RT=1656759136:S=ALNI_MZ7770okwGMK3LktmjO1zbV6Iu6ng; c_first_page=https%3A//blog.csdn.net/weixin_44141495/article/details/108734445; dc_session_id=10_1656763419312.679744; c_dsid=11_1656763418114.230266; log_Id_click=236; log_Id_view=908; c_pref=https%3A//blog.csdn.net/riju4713%3Ftype%3Dblog; c_ref=https%3A//blog.csdn.net/weixin_44141495/article/details/108734445; c_page_id=default; dc_tos=ree71x; log_Id_pv=283; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1656763701

备注:1.增加分段cookie,增加爬虫难度

           2.通过增加多key,服务器端校验key-value真伪

3.数据加密

3.1后端数据加密,前端收到数据在解密
    escape
    base64
也可以用加密后的数据再次请求接口获取解密数据

3.2.自定义算法

自定义算法+前端解密

4.ip频率(频繁抓取IP被封)

4.1.设置每个页面抓取时间间隔,降低被封概率
4.2.设置随机时间

使用redis缓存:
key:ip
value:请求次数
extiretime:60(秒)
判断一分钟请求超过100次,就把这个ip加入黑名单,不让访问


数据采集层
   HttpClient,HTML Cleaner,Xpath,正则表达式
数据存储层
   HBase,Redis
数据处理层
   solr/es
数据展示层
   springboot
   freemarker
   HighChart

爬虫项目:多台服务器
网站爬虫类URL定时项目:一台服务器
HBase数据库:集群
Solr服务器:集群
Redis服务器:集群
爬虫监控项目: 一台服务器
web项目:多台服务器
zk:集群

网站采取反爬策略
模板定期变动
URL抓取失败
频繁抓取IP被封

不同配置文件配置不同网站的模板规则
数据库存储不同网站的模板规则


经常更新网站标签


网站模板定期变动-解决方案
不同配置文件配置不同网站的模板规则
数据库存储不同网站的模板规则

网站url抓取失败
httpClient默认处理方式
Storm实时解析日志,将失败url重新加入抓取仓库,一般超过3次就放弃



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值