在 python 中对请求使用代理的正确方法是什么

what is the proper way to use proxies with requests in python

Requests 未遵守代理标志。

关于使用 python 请求库通过代理发出请求,我缺少一些东西。

如果我启用 OS 系统代理,那么它可以工作,但是如果我只使用请求模块代理设置发出请求,远程机器将看不到请求中设置的代理,但会看到我的真实ip,好像没有设置代理

下面的示例将显示此效果,此时 post 波纹管代理处于活动状态,但任何工作代理都应复制该效果。

import requests

proxy ={
  'http:': 'https://143.208.200.26:7878',
  'https:': 'http://143.208.200.26:7878'
}
data = requests.get(url='http://ip-api.com/json', proxies=proxy).json()
print('Ip: %s\nCity: %s\nCountry: %s' % (data['query'], data['city'], data['country']))

我也试过更改 proxy_dict 格式:

proxy ={
          'http:': '143.208.200.26:7878',
          'https:': '143.208.200.26:7878'
       }

但是还是没有效果

我正在使用: -Windows 10 -python 3.9.6 -urllib 1.25.8

非常感谢任何帮助解决此问题的回复。

好的,是的! . 解决这个问题的功劳归功于 (Olvin Rogh) 感谢 Olvin 的帮助并指出了我的问题。我在键内添加了冒号“:” 此代码现在可以使用。

PROXY = {'https': 'https://143.208.200.26:7878',
         'http': 'http://143.208.200.26:7878'}


with requests.Session() as session:
    session.proxies = PROXY
    r = session.get('http://ip-api.com/json')
    print(json.dumps(r.json(), indent=2))