爬虫 代理(吃牢饭集合)
每天一个入狱小技巧
理解使用代理的过程
代理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 = { "http":"http://106.14.5.128:80", "https":"http://106.14.5.130:80" }
response = requests.get(url, proxies=proxies)
|
作者: 我叫史迪奇
本文来自于:
https://sdq3.link/reptile-agent.html博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议