• 爬虫基础—代理的基本原理


    📋 个人简介
    💖 作者简介:大家好,我是W_chuanqi,一个编程爱好者
    📙 个人主页:W_chaunqi
    😀 支持我:点赞👍+收藏⭐️+留言📝
    💬 愿你我共勉:“若身在泥潭,心也在泥潭,则满眼望去均是泥潭;若身在泥潭,而心系鲲鹏,则能见九万里天地。”✨✨✨

    第1章 爬虫基础

    1.5 代理的基本原理

    ​ 在做爬虫的过程中经常会遇到一种情况,就是爬虫最初是正常运行、正常抓取数据的,一切看起来都是那么美好。然而一杯茶的工夫就出现了错误,例如 403 Forbidden,这时打开网页一看,可能会看到“您的 IP访问频率太高”这样的提示。出现这种现象是因为网站采取了一些反爬虫措施。例如服务器会检测某个 IP在单位时间内的请求次数,如果请求次数超过设定的阈值,就直接拒绝提供服务,并返回一些错误信息,可以称这种情况为封 IP。

    ​ 既然服务器检测的是某个IP在单位时间内的请求次数,那么借助某种方式把我们的 IP 伪装一下,让服务器识别不出请求是由我们本机发起的,不就可以成功防止封 IP了吗?

    ​ 一种有效的伪装方式是使用代理,后面会详细说明代理的用法。在这之前,需要先了解代理的基本原理,它是怎样实现伪装 IP 的呢?

    1.基本原理

    ​ 代理实际上就是指代理服务器,英文叫作 Proxy Server,功能是代网络用户取得网络信息。形象点说,代理是网络信息的中转站。当客户端正常请求一个网站时,是把请求发送给了 Web 服务器,Web 服务器再把响应传回给客户端。设置代理服务器,就是在客户端和服务器之间搭建一座桥,此时客户端并非直接向 Web 服务器发起请求,而是把请求发送给代理服务器,然后由代理服务器把请求发送给 Web服务器,Web服务器返回的响应也是由代理服务器转发给客户端的。这样客户端同样可以正常访问网页,而且这个过程中 Web服务器识别出的真实P就不再是客户端的护了,成所实现了他情
    装,这就是代理的基本原理。

    2.代理的作用

    ​ 代理有什么作用呢?我们可以简单列举如下。

    • 突破自身 IP 的访问限制,访向一些平时不能访问的站点。
    • 访问一些单位或团体的内部资源。比如,使用教育网内地址段的免费代理服务器。就可以下貌和上传对教育网开放的各类 FTP,也可以查询、共享各类资料等。
    • 提高访问速度。通常,代理服务器会设置一个较大的硬盘缓神区,当有外界的悄息遍过时,会同时将其保存到自己的缓冲区中,当其他用户访向相同的信息时,直接从缓冲区中取出销息。提高了访问速度。
    • 隐藏真实 IP。上网者可以通过代理隐藏自己的 IP,免受攻击。对于爬虫来说,使用代躍就是为了隐藏自身 IP,防止自身的 IP 被封锁。

    3.爬虫代理

    ​ 对于爬虫来说,由于爬取速度过快,因此在爬取过程中可能会遇到同一个 IP 访问过于频繁的同题,此时网站会让我们输入验证码登录或者直接封锁 IP,这样会给爬取造成极大的不便。

    ​ 使用代理隐藏真实的IP,让服务器误以为是代理服务器在请求自己。这样在爬取过程中不断更换代理,就可以避免 IP被封锁,达到很好的爬取效果。

    4.代理分类

    对代理进行分类时,既可以根据协议,也可以根据代理的匿名程度,这两种分类方式分别总结如下。

    •根据协议区分

    根据代理的协议,代理可以分为如下几类。

    • FTP 代理服务器:主要用于访问 FTP服务器,一般有上传、下载以及缓存功能,端口一般为21、2121 等。
    • HTTP 代理服务器:主要用于访向网页,一般有内容过滤和缓存功能,端口一般为80、8080、3128等。
    • SSL/TLS代理:主要用于访向加密网站,一般有 SSL 或 TLS 加密功能(最高支持 128 位加密强度),端口一般为 443。
    • RTSP 代理:主要用于 Realplayer 访问 Real 流媒体服务器,一般有缓存功能,端口一般为 554。
    • Telnet 代理:主要用于 Telnet 远程控制(黑客人侵计算机时常用于隐藏身份),端口一般为23。
    • POP3/SMTP 代理:主要用于以 POP3/SMTP 方式收发邮件,一般有缓存功能,端口一般为110/25。
    • SOCKS 代理:只是单纯传递数据包,不关心具体协议和用法,所以速度快很多,一般有缓存功能,端口一般为1080。SOCKS 代理协议又分为 SOCKS4 和SOCKS5,SOCKS4 协议只支持TCP,SOCKS5 协议则支持 TCP 和 UDP,还支持各种身份验证机制、服务器端域名解析等。简单来说,SOCKS4 能做到的 SOCKS5 都能做到,但 SOCKS5 能做到的 SOCKS4 不一定做得到。

    •根据匿名程度区分

    根据代理的匿名程度,代理可以分为如下几类。

    • 高度匿名代理:高度匿名代理会将数据包原封不动地转发,在服务端看来似乎真的是一个普通客户端在访问,记录的 IP 则是代理服务器的 IP。

    • 普通匿名代理:普通匿名代理会对数据包做一些改动,服务端可能会发现正在访问自己的是个代理服务器,并且有一定概率去追查客户端的真实 IP。这里代理服务器通常会加入的 HTTP头有HTTP_VIA 和HTTP_X_FORWARDED_FOR。

    • 透明代理:透明代理不但改动了数据包,还会告诉服务器客户端的真实 IP。这种代理除了能用缓存技术提高浏览速度,用内容过滤提高安全性之外,并无其他显著作用,最常见的例子是内网中的硬件防火墙。

    • 间谍代理:间谍代理是由组织或个人创建的代理服务器,用于记录用户传输的数据,然后对记录的数据进行研究、监控等。

    5.常见代理设置

    常见的代理设置如下。

    • 对于网上的免费代理,最好使用高度匿名代理,可以在使用前把所有代理都抓取下来筛选一下可用代理,也可以进一步维护一个代理池。

    • 使用付费代理服务。互联网上存在许多可以付费使用的代理商,质量要比免费代理好很多。

    • ADSL 拨号,拨一次号换一次 IP,稳定性高,也是一种比较有效的封锁解决方案。

    • 蜂窝代理,即用 4G 或 5G 网卡等制作的代理。由于用蜂窝网络作为代理的情形较少,因此整体被封锁的概率会较低,但搭建蜂窝代理的成本是较高的。

  • 相关阅读:
    [英雄星球六月集训LeetCode解题日报] 第29日 分治
    Gin 笔记(07)— 自定义中间件、全局中间件、组中间件、单请求中间件、BasicAuth 中间件、限流中间件、中间件内使用 goroutines
    tf.logging
    Java笔记(六)
    山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十四)- 微服务(4)
    Qt绘制椭圆曲线的角度问题(离心角和旋转角)
    Vue-管理状态仓库Vuex
    Ubuntu systemd.service服务单元配置详解
    如何使用HTML制作个人网站( web期末大作业)
    高质量ChatGPT Prompt 精选
  • 原文地址:https://blog.csdn.net/W_chuanqi/article/details/125519747