• 爬虫之反爬思路与解决手段


    阅读时间建议:4分钟
    本篇概念比较多,嗯。。

    0x01 反爬思路与解决手段

    1、服务器反爬虫的原因

    因为爬虫的访问次数高,浪费资源,公司资源被批量抓走,丧失竞争力,同时也是法律的灰色地带。

    2、服务器反什么爬虫

    三月爬虫:毕业生写的,不管服务器负载能力。
    小公司:几个人缺钱,开始玩主流的爬虫数据分析,写的爬虫贼多,浪费资源。
    个人爬虫:忘记停止的爬虫。
    商业对手:很有钱,投入很大精力爬虫,浪费资源。
    搜索引擎:通用爬虫,存在一些bug,对某一个网站持续爬取,他们技术很好,对服务器造成压力

    3、反爬虫里的概念

    爬虫:实用技术批量获取信息
    反爬虫:阻止别人使用技术获取信息
    误伤:服务器把普通用户屏蔽了
    拦截:阻止爬虫访问
    资源:机器和人力成本

    4、反爬虫三个方向

    4.1身份识别反爬

    根据发出的请求符不符合浏览器发出携带的参数,那你就会被反爬。

    4.1.1通过headers的ua字段反爬

    如果我们不修改headers,那么ua那一行就是python或者是你用的模块名,这样很容易被反。

    4.1.2referer字段反爬

    看你是从哪发出的请求,一般浏览器自己带上,有的服务器在获取到一个请求后,要看从哪跳转的,如果没有referer,极有可能是爬虫,一般会被反。

    4.1.3cookie反爬

    通过检查cookie查看发起请求的用户是否具有权限。

    4.1.4请求参数反爬

    通过html文件中提取请求数据,需要仔细分析每一个包
    通过发送请求来获取请求数据,需要搞清楚参数来源
    js生成了请求参数,需要js2py获取js执行结果,或者用selenium
    验证码反爬,需要打码平台或者机器学习,这里我推荐打码平台,成本低而且简单
    (据说机器学习可以解马赛克?)

    4.2爬虫行为反爬

    众所周知,在爬取top250时,要先访问页面,获取详情url,振幅此页面发请求,针对每一步发出请求,服务器在此过程检查数据包中反爬。

    4.2.1基于请求频率反爬

    当某ip访问过量时,很大可能被反爬,需要降低爬虫采集速度或者使用代理池又或者是准备多个账号。

    4.2.2 基于请求间隔的反爬

    请求时间间隔十分规律,会被反爬,需要设置随机休眠或者是代理池或者多账号。

    4.2.3 基于请求次数的反爬

    比如支付宝,逆天给你限量转账400次,需要代理池或者多账号。

    4.2.4 基于爬虫行为反爬

    有些网站它的翻页url不是规律的,需要查看js一般里面有计算步骤
    蜜罐获取爬虫ip———什么意思呢?
    进入拉钩https://www.lagou.com/

    图片


    1、这里有很多求职信息,于是我们爬取它
    2、在爬取的时候,爬到了一个隐藏的职位,这就是蜜罐,他就会确定你是爬虫,并且把你的代理池搞报废。
    3、正常人看不到,而程序看得到,怎么实现呢?
    4、检查这个节点,add attribute-》添加style=”dispaly:none”

    图片

    图片

    5、于是就看不到了。
    通过假数据反爬,就是往响应里添加垃圾数据恶心爬虫工程师,需要把数据库内容与世纪网页进行比对。
    通过阻塞队列反爬,就是往响应url里添加垃圾url,需要对url进行过滤
    通过阻塞网络IO,比如往你下载的数据里加个蓝光大电影(其实就是爬虫bomb,期待社区搞一个,搞搞新手),需要观察爬虫状态/多线程请求计时

    4.3数据加密反爬

    加大数据提取难度

    4.3.1css字体反爬

    进入猫眼https://www.maoyan.com/films/248172

    图片


    可以看到两个方块,但我检查的是9.1啊,说明这里有字体反爬虫
    需要换成手机版
    点这个

    图片


    (在我选中的里面有一个9.1)

    图片

    4.3.2css字体偏移

    源码中的数据不是真正数据,需要计算css的位移(这哪是没找到例子)

    4.3.3 数据化图片反爬

    就是把数据写在图片里,需要使用图片解析引擎

    4.3.4 编码格式反爬

    每个格式都试试

     
    

    1.print(response.content.decode("GBK"))

     申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

  • 相关阅读:
    策略模式:灵活定义一系列可互换的算法
    基于C#的五子棋游戏设计
    cnpm : 无法加载文件 C:\Users\XXX\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本——解决办法
    还未入职,这位将来的博导为学生规划了一条高效学习之路
    Excel中使用数据验证、OFFSET实现自动更新式下拉选项
    Opencv边缘检测、轮廓发现、绘制轮廓
    ubuntu18.04 OAK-D kalibr 双目+imu联合标定
    python并发编程 多线程/多进程/协程
    前端开发个人职业发展的四个阶段,你处于哪里?
    2022 9.8 模拟
  • 原文地址:https://blog.csdn.net/zkaqlaoniao/article/details/139466297