是否可以使用Python的请求库设置代理链?

时间:2018-06-16 19:37:22

标签: python proxy python-requests

以下是标准情况:公司的安全策略要求其所有员工使用公司的代理服务器(需要授权)来获取任何https资源。

为了通过Python的解释器成功使用任何互联网连接,我必须手动:

set HTTP_PROXY=http://<login>:<pass>@<proxy>:<port>

如果我不这样做,我会收到以下错误: enter image description here

所以这里有一个问题:是否有可能连接到另一个代理服务器(在我以某种方式连接到公司的代理之后),以便做一些测试压力工作而不是危及我公司的IP被禁止?

3 个答案:

答案 0 :(得分:0)

您可以在代码级别实现逻辑。 HTTP_PROXY环境变量不是指定代理的唯一方法。像使用documentation

一样使用proxies参数
import requests

proxies = {
  'http': 'http://10.10.1.10:3128',
  'https': 'http://10.10.1.10:1080',
}

requests.get('http://example.org', proxies=proxies)

所以你可以处理这些异常(我的意思是ProxyError),以及更改param中的代理

答案 1 :(得分:0)

我认为代理链接是不可能的。如果可能,请给我们一些有效的代码。我已经尝试过了,但是后来我知道这很愚蠢。但是当我看到代理链终端应用程序如何工作时,我仍然迷失了它。

我的代码:

import socket

def main():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(('182.52.22.58', 8080))
   ''' s.connect(('61.7.128.94' , 8080))'''
    request = b"CONNECT 146.88.51.238:80 HTTP/1.1\n\n"
    s.send(request)
    print('hi' + s.recv(4096).decode())
    request = b"GET google.com HTTP/1.1\n\n"
    s.send(request)
    print(s.recv(4096).decode())

main()

答案 2 :(得分:0)

sudo apt install proxychains 


proxychains python3 test.py
<块引用>

test.py

from requests import get

for x in range(10):
    print(f"Your IP Changes to: {get('https://api.ipify.org').text}")

确保在 /etc/proxychains.conf 文件

的末尾添加一些代理