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

laical · 2020-07-14 17:24:42 · 3547 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2020-07-14 17:24:42 的主题,其中的信息可能已经有所发展或是发生改变。

正向代理和反向代理的概念 无论是正向代理,还是反向代理,说到底,就是代理模式的衍生版本罢了。我们都学习过代理设计模式,都知道代理模式中有代理角色和被代理角色,为什么这么说,因为这两个角色对于我们理解正向和反向代理非常重要 正向代理 意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器), 然后代理向原始服务器转交请求并将获得的内容返回给客户端。 反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求, 然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端, 简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。 image.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


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

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

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