您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从Python更改浏览器代理设置?

从Python更改浏览器代理设置?

Windows将其系统范围的代理存储在注册表中,在中查找HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings。您可以使用Python _winreg模块进行更改(如果使用Python 3,也可以使用winreg)。这是示例代码@H_502_3@

import _winreg as winreg

INTERNET_SETTINGS = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
    r'Software\Microsoft\Windows\CurrentVersion\Internet Settings',
    0, winreg.KEY_ALL_ACCESS)

def set_key(name, value):
    _, reg_type = winreg.QueryValueEx(INTERNET_SETTINGS, name)
    winreg.SetValueEx(INTERNET_SETTINGS, name, 0, reg_type, value)

set_key('ProxyEnable', 1)
set_key('ProxyOverride', u'*.local;<local>')  # Bypass the proxy for localhost
set_key('ProxyServer', u'X.X.X.X:8080')

要禁用它,您只需要将ProxyEnable键设置为0:@H_502_3@

set_key('ProxyEnable', 0)

脚本运行后,浏览器仍将旧代理存储在内存中,因此您需要重新启动它们,以便它们可以从注册表中重新读取新的代理设置。我发现这很烦人,所以我将该代码段转换为Python。@H_502_3@

import ctypes

INTERNET_OPTION_REFRESH = 37
INTERNET_OPTION_SETTINGS_CHANGED = 39

internet_set_option = ctypes.windll.Wininet.InternetSetOptionW

internet_set_option(0, self.INTERNET_OPTION_REFRESH, 0, 0)
internet_set_option(0, self.INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)

这将刷新Windows设置,因此您要做的就是在浏览器中按F5键以获取新的代理设置。@H_502_3@

我编写了一个小脚本来打开或关闭我的代理,将源打开在Bitbucket上:https : //bitbucket.org/canassa/switch- proxy@H_502_3@

这适用于使用Windows系统范围代理的任何浏览器(例如:Chrome,IE)。某些浏览器(如Firefox)使用内部代理设置。如果要更改这些设置,您将弄清楚它们存储设置的位置,并编写代码对其进行更改。@H_502_3@

python 2022/1/1 18:27:12 有189人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶