爬虫代理中的反向代理和正向代理的概念

laical · · 3483 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

正向代理和反向代理的概念 无论是正向代理,还是反向代理,说到底,就是代理模式的衍生版本罢了。我们都学习过代理设计模式,都知道代理模式中有代理角色和被代理角色,为什么这么说,因为这两个角色对于我们理解正向和反向代理非常重要 正向代理 意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器), 然后代理向原始服务器转交请求并将获得的内容返回给客户端。 反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求, 然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端, 简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。 ![image.png](https://static.studygolang.com/200714/acd870749c851546a8947de9ea73d3b4.png) 为什么要使用反向代理? 反向代理的主要作用是分发请求。 反向代理可以用来隐藏服务器,对于用户来说,他们访问的是反向代理,然后由反向代理通过防火墙与真正的服务器进行通讯,这样真正的服务器对于用户来说是透明的 反向代理还可以用来进行负载均衡,当大量用户进行访问的时候,访问的是反向代理,然后由隐藏在后面的某一个服务器进行真正的数据处理,每一次处理的服务器不一定是哪个,从而实现负载均衡 python爬虫使用代理代码demo #! -*- encoding:utf-8 -*- import requests import random # 要访问的目标页面 targetUrl = "http://httpbin.org/ip" # 要访问的目标HTTPS页面 # targetUrl = "https://httpbin.org/ip" # 代理服务器(产品官网 www.16yun.cn) proxyHost = "t.16yun.cn" proxyPort = "31111" # 代理验证信息 proxyUser = "username" proxyPass = "password" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host" : proxyHost, "port" : proxyPort, "user" : proxyUser, "pass" : proxyPass, } # 设置 http和https访问都是用HTTP代理 proxies = { "http" : proxyMeta, "https" : proxyMeta, } # 设置IP切换头 tunnel = random.randint(1,10000) headers = {"Proxy-Tunnel": str(tunnel)} resp = requests.get(targetUrl, proxies=proxies, headers=headers) print resp.status_code print resp.text 爬虫程序需要使用到爬虫代理ip 时,尽量选择高匿亿牛云代理。![2660278-bfdc4848a69c14d1.webp.jpg](https://static.studygolang.com/200714/3ac4bb0590778afe599574cc4df5d004.jpg)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3483 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传