代理

代理是什么?

· 代理是指允许一个网络终端通过这个服务与另一个网络终端进行非直接的连接提供代理服务的计算机系统或其他类型的网络
  终端称为代理服务器,是提供代理服务的计算机系统或其他类型的网络终端。

· 一些网关,路由器等设备具备网络代理功能。

· 代理服务器的功能就是代理网络用户去取得网络信息。形象的说,它是网络信息的中转站。
在这里插入图片描述

代理的分类

浏览器访问服务器时,有些可以无需代理,有些是正向代理,有些是反向代理

正向代理:

正向代理类似一个跳板机,代理访问外部资源。
比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了。

反向代理:

反向代理实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

正向代理与反向代理的区别

对于客户端浏览器来说,是否知道最终服务器的信息和地址
如果知道最终服务器的地址,那么就是正向代理
如果不知道最终服务器的地址,那么就是反向代理

在这里插入图片描述

使用代理

为什么爬虫需要使用代理

·让服务器以为不是同一个客户端在请求
·防止我们的真实地址被泄露,防止被追究

用法:

(百度为例)
request.get(“http://www.baidu.com”,proxies=proxies)

proxies 的形式:字典(键:协议,值:协议+ip地址)
(例)proxies={
   “http”:“http://12.34.56.79:9527”,
   (“https”:“https://12.34.56.79.9527”,)
   }

具体的代理可百度查找

import requests
proxies={"http":"http://121.40.108.76:80"}
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38"}
url="http://www.baidu.com"
r=requests.get(url,headers=headers,proxies=proxies)
print(r.status_code)

使用代理ip

准备一堆ip地址,组成ip池,随机选择一个ip来使用,可以将代理ip与使用次数建立字典,从而建立代理ip字典列表,以使用次数排序,提高代理ip可用的效率。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐