02.爬虫知识结构归纳

做爬虫用python 要比 Java方便很多:

使用的第三方库(最底层的):requests

自动化测试:selenium

框架:scrapy

其他的什么爬虫软件就算了吧...像什么八爪鱼之类的...

他们有着各自的优缺点,自行baidu了解!

我们在做一个爬虫时候,重要的不是先去编写代码,而是先去思考怎么去模拟用户的行为?

作为一个用户 我们向服务器提交一个url 服务器对我们身份识别 并且进行信息反馈

作为一个爬虫 我们向服务器提交一个url 服务器对我们身份识别(被识别为爬虫) 不进行信息反馈

第二个:

做为一个用户 我们向服务器提交一个url 服务器对我们的身份识别方式 网页数据进行加密,网页进行渲染,用户行为检测,网站安全防护 进行信息反馈

作为一个爬虫 我们向服务器提交一个url 服务器对我们的身份识别方式(通过) 网页数据加密,渲染拿不到数据 用户行为检测强制封停程序运行 安全检测封禁 不再进行数据反馈

第三个:

作为一个用户 我们向服务器提交一个url 服务器要求用户做验证码认证,以进行身份识别 成功则进行信息反馈

作为一个爬虫 我们向服务器提交一个url 服务器要求爬虫做验证码认证,以进行身份识别 爬虫在做验证码的过程中穿插用户行为检测 失败则不进行信息反馈

简单说一下这些反爬的情况:

1.服务器检测是否为正常用户分为三点:

    一.用户去请求一个web页面携带的user-agent 这是一个头部:里面包含着用户的信息

    二.用户请求时所需要提供服务器指定的参数内容 是否正确?

    三.黑名单代理ip用户

2.简单参数加密JS:

    我们作为用户去访问,不用去理会加密参数生成,他会有JS帮你运行

    但是作为爬虫去访问,他的JS则不会帮你进行加密参数生成了

    常见的加密方式 MD5 SHA DES AES base64 以及编码加密...

    当然还有最让人头疼的自定义JS方法加密

3.Cookie检测:

    Cookie就代表你的身份 这里只稍做了解 后续会专门说Cookie

4.验证码:

    验证码一般分为:输入验证码 滑动验证码 点触验证码 

    解决方法包含三种:绕过验证码 机器学习处理验证码 第三方打码平台处理

5.网页渲染: 

    复杂的JS加密 参数很难破解

    解决方法两种:selenium模拟用户 逆向JS强制破解参数加密

6.用户行为检测:

    当你的程序达到了人达不到的高度时,服务器可能会对你进行封禁

    解决办法两种:设置睡眠时间 代理ip更换成为别的用户

 

结束

 

posted @ 2022-02-22 18:33  锋芒毕露的蜘蛛  阅读(75)  评论(0编辑  收藏  举报