来源:python中国网 时间:2019-07-19

  代理

  如果需要使用代理,你可以通过为任意请求方法提供proxies参数来配置单个请求:

# -*- coding: utf-8 -*-
import requests

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

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


  你也可以通过环境变量HTTP_PROXY和HTTPS_PROXY来配置代理。

$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="http://10.10.1.10:1080"


  若你的代理需要使用HTTP Basic Auth,可以使用http://user:password@host/语法:

# -*- coding: utf-8 -*-
proxies = {
    "http": "http://user:pass@10.10.1.10:3128/",
}


  要为某个特定的连接方式或者主机设置代理,使用scheme://hostname作为 key, 它会针对指定的主机和连接方式进行匹配。

# -*- coding: utf-8 -*-
proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}

  注意,代理 URL 必须包含连接方式。

  SOCKS(2.10.0 新版功能)

  除了基本的 HTTP 代理,Request 还支持 SOCKS 协议的代理。这是一个可选功能,若要使用, 你需要安装第三方库。

  你可以用pip获取依赖:

	  pip install requests[socks]


  安装好依赖以后,使用 SOCKS 代理和使用 HTTP 代理一样简单:

# -*- coding: utf-8 -*-
proxies = {
    'http': 'socks5://user:pass@host:port',
    'https': 'socks5://user:pass@host:port'
}