主页 分类 关于

爬虫 代理(吃牢饭集合)

每天一个入狱小技巧

理解使用代理的过程

代理ip是一个ip, 指向的是一个代理服务器

代理服务器能够帮我们向目标服务器转发请求

graph LR A[浏览器]--request-->B[代理] B[代理]--request-->C[Web Server] C[Web Server]--response-->B[代理] B[代理]--response-->A[浏览器]

正向代理

为浏览器或客户端(发送请求的一方)转发请求的, 叫做正向代理

  • 浏览器知道最终处理请求服务器的真实ip地址, 例如vpn

反向代理

不为浏览器或客户端(发送请求的一方)转发请求的, 而是为最终处理请求的服务器转发请求的,叫做反向代理

  • 浏览器不知道服务器的真实ip地址, 例如nginx

怎么区分正向代理和反向代理

知不知道最终服务器的地址作为判断标准 知道正向 不知道反向

代理ip(代理服务器)的分类

透明代理(Transparent Proxy) 透明代理虽然直接隐藏你的ip地址, 但还是可以查看的到 目标服务器接收到的请求头如下:

REMOTE_ADDR = Proxy IP

HTTP_VIA = Proxy IP

HTTP_X_FORWARDED_FOR = 你的IP

匿名代理(Anonymous Proxy) 使用匿名代理, 别人只能知道你用了代理, 无法知道你是谁 目标服务器接收到的请求头如下:

REMOTE_ADDR = Proxy IP

HTTP_VIA = Proxy IP

HTTP_X_FORWARDED_FOR = Proxy IP

高匿代理(Elite Proxy或者High Anonymous Proxy) 使用高匿代理让别人无法发现你是在用代理, 所以是最好选择 效果最好 目标服务器接收到的请求头如下:

REMOTE_ADDR = Proxy IP

HTTP_VIA = not determined

HTTP_X_FORWARDED_FOR = not determined

根据网站所使用的协议不同, 需要使用相应协议的代理服务

  • http代理: 目标url为http协议
  • https代理: 目标url为https协议
  • socks隧道代理: 例如socks5
    • socks代理只是简单传递数据包, 不关心是何种应用协议(FTP, HTTP, HTTPS等)
    • socks代理比http和https代理耗时少
    • socks代理可以转发http请求和https请求

proxies代理参数的使用

为了让服务器以为不是同一个客户端的请求, 防止频繁向一个域名发送请求被封ip, 所以要使用代理ip

# 主意: proxies字典中包含多个键值对, 发送请求时将按照url地址的协议来选择对应的代理ip

# proxies通常是用字典形式使用
proxies = {
"http":"http://106.14.5.128:80",
"https":"http://106.14.5.130:80"
}

# reuests模块使用代理的用法:
response = requests.get(url, proxies=proxies)









作者: 我叫史迪奇
本文来自于: https://sdq3.link/reptile-agent.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议