我处于无法使用pacparser库的棘手情况,我希望有人使用纯python解决方案(没有C / c ++模块)。

我有一个PAC文件,其中返回了多个代理:

function FindProxyForURL(url,host)
{
if (isPlainHostName(host))
{ return "DIRECT"; }

#// Internal network Hosts 
if (isInNet(host, "158.232.0.0", "255.255.0.0") || isInNet(host, "127.0.0.1", "255.255.255.255")|| isInNet(host, "10.0.0.0", "255.0.0.0"))
{ return "DIRECT"; }

#// Connect through proxy server for all other hosts. If proxy server is not available, connect directly
return "PROXY proxy.site.com:3128; PROXY proxy02.site.com:3128; PROXY proxy05.site.com:3128; PROXY proxy03.site.com:3128; PROXY proxy04.site.com:3128";

}


我如何仅使用python解析此内容,以及分辨哪个代理启动的最佳方法是什么?

谢谢您和您对学院的考虑! :)

最佳答案

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

在内部,它使用Js2Py(一个解析并执行JavaScript的Python库)。然后,PyPAC具有PAC规范所需的各种JavaScript函数的Python实现。

关于python - 在不使用C模块的情况下用Python解析PAC文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26911029/

10-12 18:23