我想解析PAC文件以获取代理信息... 但不想在Explorer中实现
接着之前的一个问题:
我正在开发一个在Windows XP上运行的Python 2.4应用程序。这个程序需要能够从HTTP下载各种资源,并且必须在我们所有的办公室地点都能正常工作,这些地方使用“PAC”文件来自动选择HTTP代理。
多亏了之前有人回复我的问题,我找到了一种在Python中执行Javascript的简单方法:
js = win32com.client.Dispatch('MSScriptControl.ScriptControl')
js.Language = 'JavaScript'
js.AddCode('function foo(a,b) {return a;}' )
result = js.Run( "foo", "hello" )
但是问题来了:
PAC文件中引用了一些函数,比如shExpMatch和isPlainHostName,这些函数大概是微软的Internet Explorer提供的。如果我按照上面的方式在Windows脚本中直接运行PAC文件,它会失败,因为这些函数是缺失的。
所以我需要找到一种方法,让环境设置和IE完全一样。显而易见的方法是以IE的方式导入这些函数。
我发现Firefox包含一个单独的JS文件,里面有这些函数。我想我可以试着在微软的脚本主机上运行Firefox的JS,但这听起来有点冒险。我真正想要的是让Javascript环境完全符合微软的标准,不想让事情变得复杂。
有什么建议吗?
附注:你可以在维基百科上看到一个PAC文件的例子。可惜我不能发布我们的PAC文件……那样会违反公司的安全规定。
1 个回答
1
你能从远程主机下载PAC文件吗?我问这个是因为通常在Python中,urllib会使用一些静态的信息来设置代理,这些信息是从注册表中获取的。
不过,如果你能下载到那个文件,那么我觉得你也可以获取另一个文件,这样你就可以考虑使用Firefox的版本了。