如何将代理 PAC 文件用于 python urllib 或请求?

How to use Proxy PAC file for python urllib or request?

如何在 HTTP 库中包含我的自动代理配置文件,例如 urllib 或请求。

pacfile = 'http://myintranet.com/proxies/ourproxies.pac'
proxy = urllib3.ProxyManager(????????????????)

目前不支持直接在 urllib3 或请求中使用代理 PAC 文件。虽然原则上 可以为代理 PAC 文件添加支持,但由于它们是 Javascript 需要解释的文件,因此提供广泛支持可能极其困难。

原则上你可以使用requests/urllib3来请求Proxy PAC文件,然后将它传递给类似Node.JS的东西进行解释,然后在Python中解析结果传递给urllib3/requests,但没有开箱即用的东西。

我创建了一个名为 PyPAC 的纯 Python 库,它应该可以满足您的需求。它提供了 requests.Session 的一个子类,其中包括荣誉 PAC 和 PAC 自动发现。

使用 PYPAC。

from pypac import PACSession, get_pac

pac = get_pac(url='http://your/pac/url/file.pac')
session = PACSession(pac, proxy_auth=HTTPProxyAuth('your_user', 'password'))
print(session.get('http://www.google.com'))

你将获得 200