python 爬虫常见的反爬策略与反爬攻克

                python 爬虫常见的反爬策略与反爬攻克

  爬虫基本对所有人来说,都是又爱又恨,爱恨交织的。由于网络的开放性,只要是连上了网线,那么就没有绝对的封闭,而爬虫基本可以说是无物不爬,总会有误爬的情况,或者爬取了相对来说不希望公开或者不希望他人知道的比较私密的信息,但另一方面,网络的参与者又希望有爬虫能爬取它,进而推广它自身,好像,蚂蚁与蜂蜜的关系,甜蜜而又危险?

比如说,音视频类网站并不希望爬虫能够爬取它的核心音视频,销售类网站并不希望太多人知道它的经营规则,但它希望更多的人知道它的商品。根据自身的对数据方面的需求,网络参与者对其自身的数据的敏感度是不一样的,因此,有的网站可能不止一条反爬策略,而有的网站可能会很少的反爬策略或者完全不限制爬虫。

  • 常见的反爬策略大概有六种,下面简单介绍各个反爬策略以及大体的反爬攻克:
  • 1.UA的限制和其他头信息的限制
  • ===============================================================
  • Request URL: https://www.hao123.com/favicon.ico
    Request Method: GET
    Status Code: 200 OK
    Remote Address: [2409:8c1e:8f51:2:0:ff:b027:45ce]:443
    Referrer Policy: unsafe-url
    Accept: image/webp,image/apng,image/*,*/*;q=0.8
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9
    Cache-Control: no-cache
    Connection: keep-alive
    Cookie: BAIDUID=B7049FABC5FF6B6555AFCBC82D94C869:FG=1; s_ht_pageid=16; v_pg=normal; hz=0; Hm_lvt_0703cfc0023d60b244e06b5cacfef877=1586449446,1586657441,1586772093,1586799709; ft=1; hword=15; org=1; Hm_lpvt_0703cfc0023d60b244e06b5cacfef877=1586963371; tnwhiteft=XzFYUBclcMPGIANCmytknWnBQaFYTzclnHR3PWbvn1R1nLY; __bsi=10426945379818777506_00_25_R_R_13_0303_c02f_Y
    Host: www.hao123.com
    Pragma: no-cache
    Referer: https://www.hao123.com/
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400
    以上是一个头信息,可以看到有很多项目,常见限制是User—Agent,当然,别的选项也是可以限制的,
  • 因此解决方案为构建用户代理池,以及其他相对应的头信息
  • 2.。对访问者的IP进行限制,比如,频繁爬取某些网站,可能具有IP黑名单,将爬虫关入小黑屋,或者暂时的但频繁的封禁爬虫IP
  • 因此,解决方案为构建IP代理池
  • 3。验证码限制,比如,验证码难度提高,类似12306?
  • 解决方案为找专业打码公司购买服务,使用其提供的验证码接口,提高识别成功率,比较少量的爬虫任务,手工打码,或者使用机器学习,自动识别验证码
  • 4。数据的异步加载限制,通过各种异步加载技术,延迟数据的读取,或者重定向到虚构的URL,从而隐藏真实的数据。
  • 解决方案:使用网络抓包工具,分析数据流量。
  • 5,。cookie的限制
  • 解决方案:爬取时处理cookie
  • 6.js限制,通过js脚本改变每次请求的参数,也就是每一次爬取数据都是在变,或者数据有js加密。
  • 解决方案:js反向解析
  • 这些反爬策略,可以看出 依次难度递增,在实际爬取中,相对来说,最难的是3和6,其次是5.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风_END

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值