56星座屋
当前位置: 首页 星座百科

python 爬虫代理(2022年崔庆才)

时间:2023-06-01 作者: 小编 阅读量: 4 栏目名: 星座百科

比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。使用代理隐藏真实的IP,让服务器误以为是代理服务器在请求自己。SOCKS代理协议又分为SOCKS4和SOCKS5,SOCKS4协议只支持TCP,而SOCKS5协议支持TCP和UDP,还支持各种身份验证机制、服务器端域名解析等。由于蜂窝网络用作代理的情形较少,因此整体被封锁的几率会较低,但搭建蜂窝代理的成本较高。

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

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

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

1. 基本原理

代理实际上指的就是代理服务器,英文叫作 Proxy Server,它的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。在我们正常请求一个网站时,是发送了请求给 Web 服务器,Web 服务器把响应传回给我们。如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向 Web 服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给 Web 服务器,接着由代理服务器再把 Web 服务器返回的响应转发给本机。这样我们同样可以正常访问网页,但这个过程中 Web 服务器识别出的真实 IP 就不再是我们本机的 IP 了,就成功实现了 IP 伪装,这就是代理的基本原理。

2. 代理的作用

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

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

对于爬虫来说,由于爬虫爬取速度过快,在爬取过程中可能遇到同一个 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 网卡等制作的代理。由于蜂窝网络用作代理的情形较少,因此整体被封锁的几率会较低,但搭建蜂窝代理的成本较高。

在后面,我们会详细介绍一些代理的使用方式。

6. 总结

本文介绍了代理的相关知识,这对后文我们进行一些反爬绕过的实现有很大的帮助,同时也为后文的一些抓包操作打下基础,需要好好理解。

本节由于涉及一些专业名词,本节的部分内容参考来源如下:

  • 文档 - 代理服务器 - 维基百科:https://zh.wikipedia.org/wiki/ 代理服务器
  • 文档 - 代理 - 百度百科:https://baike.baidu.com/item/代理/3242667
    推荐阅读
  • 欧洲西班牙城市风光图(世界旅游地图揽胜)

    这座城市为穆尔西亚自治区的第二大城市,同时也是西班牙第六大非省首府城市。在众多的罗马古迹中,罗马剧场尤其受关注,可容纳6000多名观众,此外,古罗马圆形剧场只能依稀可见部分城墙。

  • qq自动回复高级感(全新款再度上线)

    ,今天小编就来聊一聊关于qq自动回复高级感?qq自动回复高级感你有权保持沉默,你所说的一切都将被作为存盘记录这句话一般只有惹女朋友生气的男生会常看到,代表什么相信大家都了解吧!你这个人真的是太调皮了,但是如果对方非常憨厚的话,说不定真的会给你发送“我是猪”三遍,这样的话你的目的就达到了,当你收到对方这样的消息之后,说不定真的会笑出眼泪。

  • 甘蔗怎么样保鲜(削皮和没削皮甘蔗的保鲜方法)

    甘蔗由于糖分多,容易滋生细菌,如果不吃要尽快放入冰箱去皮的甘蔗在冰箱中保存的时间是3天以内。没削皮的甘蔗放于避风处。找一个避风有土的地方,用水浇土使土壤湿润,把甘蔗放在土上堆起来,然后甘蔗上放甘蔗叶子或类似的东西,甘蔗叶子上再加一层土,这个方法保存时间约1个月

  • 微信怎么取消银行卡绑定(微信取消银行卡绑定的方法)

    以下内容大家不妨参考一二希望能帮到您!微信怎么取消银行卡绑定首先打开微信APP。然后点击“我”。再进入详情后,点击更多。点击弹出解除绑定即可解绑银行卡。

  • 炒糖色怎么做(炒糖色如何做)

    接下来我们就一起去研究一下吧!炒糖色怎么做冷锅烧热后放入一勺左右的食用油,然后紧接着倒入白砂糖。白糖的量没过油或和油1∶1也可以,中火用锅铲铲开,边炒边化。颜色接近棕红色时有泡泡冒出即可,炒时不能大火,颜色接近红棕色就要关火了。

  • dnf(体验服介绍(地下城与勇士手游体验服)

    以下内容希望对你有帮助!dnf《地下城与勇士M体验服》是地下城与勇士手游版本的测试版本,改编自腾讯PC端格斗大作的地下城与勇士,作为格斗网游标杆的手机版游戏。游戏中玩家将重新踏上征程为故事线,感受纯粹的格斗体验。DNF手游沿用端游的整体特色,通过手指操控带来不一样的格斗体验,打怪、PK、大招甚至是觉醒,契合端游的多样性玩法,连招、控场、暴力输出。

  • 安全管理实务基础知识(安全管理学二)

    重视未遂事故的研究,未造成严重后果但要探讨事故发生的原因及发展规律,且采取相应的措施加以控制。

  • csgo结算奖励龙狙(CSGO中一把龙狙赚38万)

    狙击手Skadoodle所在的Cloud9战队,在2018年美国波士顿ELeagueMajor的CSGO决赛中以强硬的实力完败FaZe,不仅一举拿下ELeagueMajor冠军奖杯,还夺取了50万美金的冠军奖金,更让狙击手Skadoodle登顶巅峰。也正是此次比赛,让印有Skadoodle签名的2017克拉科夫特锦赛纪念品龙狙,价格暴涨到了38万的天价。然而这还不是生死狙击2最重要的创新。

  • 汽车到底需要装头枕吗(汽车头枕有必要加装吗)

    开车开得久点会发现很累,特别是每次跑高速后,总感觉一身的腰酸背痛。很多人为了平时开车开得更舒服点,会买各种靠垫啊,头枕啊,让自己的腰部,颈部能更舒服点。但这么做,其实有个很大的误区,不但不能让你更舒服,一旦发生事故的时候,还可能会给你带来致命的伤害。其实汽车不配备颈枕,都是从安全着想的。汽车在设计的时候,特意把颈部位置悬空,是为了在发生追尾或者碰撞的时候,脖颈跟后背之间有缓冲的余地。

  • 如何看懂智能电表(一分钟教你弄懂智能电表的峰)

    电能表的分时时段为鼓励用电客户合理安排用电时间,提高电力资源的利用效率,所以将每天24小时划分为高峰、峰、平、谷四个时段。为了适用于不同时段电量和电费的计算,在智能电能表中按照规定设定了时段。抄表并计算电费以计算1月1日到2月1日的电量和电费为例。