具有 Python“请求”模块的代理

新手上路,请多包涵

只是关于 Python 的优秀 Requests 模块的简短介绍。

我似乎无法在文档中找到变量“代理”应包含的内容。当我向它发送一个带有标准“IP:PORT”值的字典时,它拒绝了它要求 2 个值。所以,我猜(因为文档中似乎没有涵盖)第一个值是 ip,第二个是端口?

文档只提到了这一点:

proxies –(可选)到代理 URL 的字典映射协议。

所以我尝试了这个……我应该做什么?

 proxy = { ip: port}

在将它们放入字典之前我应该将它们转换为某种类型吗?

 r = requests.get(url,headers=headers,proxies=proxy)

原文由 user1064306 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 365
2 个回答

proxies ‘字典语法是 {"protocol": "scheme://ip:port", ...} 。有了它,您可以为使用 httphttpsftp 协议的请求指定不同(或相同)的代理:

 http_proxy  = "http://10.10.1.10:3128"
https_proxy = "https://10.10.1.11:1080"
ftp_proxy   = "ftp://10.10.1.10:3128"

proxies = {
              "http"  : http_proxy,
              "https" : https_proxy,
              "ftp"   : ftp_proxy
            }

r = requests.get(url, headers=headers, proxies=proxies)

requests 文档 推导:

参数:

method – 新请求对象的方法。

url – 新请求对象的 URL。

proxies – (可选)到 代理 URL 的 字典 映射 协议


在 Linux 上,您还可以通过 HTTP_PROXYHTTPS_PROXYFTP_PROXY 环境变量来执行此操作:

 export HTTP_PROXY=10.10.1.10:3128
export HTTPS_PROXY=10.10.1.11:1080
export FTP_PROXY=10.10.1.10:3128

在 Windows 上:

 set http_proxy=10.10.1.10:3128
set https_proxy=10.10.1.11:1080
set ftp_proxy=10.10.1.10:3128

原文由 chown 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以 在此处参考代理文档

如果您需要使用代理,您可以使用任何请求方法的 proxies 参数配置单独的请求:

 import requests

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

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

要将 HTTP Basic Auth 与您的代理一起使用,请使用 http://user:password@host.com/ 语法:

 proxies = {
    "http": "http://user:pass@10.10.1.10:3128/"
}

原文由 Zhifeng Hu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题