【问题标题】:Python, get setting of proxy from OSPython,从操作系统获取代理设置
【发布时间】:2013-12-12 07:52:33
【问题描述】:

我需要从 Internet 获取一些数据,但我使用的是公司代理,而且我不知道密码。因此,我尝试了许多使用 pyRequests 模块的示例,但总是只收到消息“授权失败 ...”。

所以我只是在想这个想法是否可行: 代理的主要设置存储在 IE 中(设置中的连接选项卡),我也在使用 Chrome,如果我理解 Chrome 正在使用此设置访问互联网(因为当我在 Chrome 中打开代理设置时,IE 代理设置窗口弹出窗口)。

所以我的问题是我是否也可以(以某种方式)将这个设置用于我的 python 脚本以及如何(不知道密码)。

【问题讨论】:

  • 如果您可以在 Chrome 中使用代理,您应该可以通过 requests 访问这些代理。
  • 也许我不知道它到底是如何工作的。我没有代理密码。我尝试使用我为 Windows 获得的用户名和密码,但它不适合我。

标签: python proxy request


【解决方案1】:

通过使用 Python urllib 模块,您可以使用 urllib.request.getproxies 函数以独立于平台的方式以编程方式获取系统上的代理:

import urllib
urllib.request.getproxies()

此函数将首先检查环境变量中设置的任何代理(例如http_proxy 等),如果没有设置,则它将使用特定于平台的调用检查系统配置的代理(例如,在 MacOS 上,它将使用系统检查scutil/configd 接口,在 Windows 上它会检查注册表)。

【讨论】:

  • 它是空的……见下面的输出>>> import urllib >>> urllib.request.getproxies() {} >>>
  • 表示没有配置系统代理。
  • 对于新版本的 python 使用:import urllib.request。根据stackoverflow.com/a/41217363/7281675.
【解决方案2】:

Python 支持代理的已知 (UNIX) 操作系统环境变量。此外,对于 Windows,它应该尝试从操作系统注册表中读取设置,以防万一:https://mail.python.org/pipermail/tutor/2008-December/065573.html

使用代理设置,例如由

  • urllib

  • 请求

...据我所知。

如果 Python 无法从 Windows 获取代理设置,则值得通过运行使用 urllib 代理功能的测试脚本进行调查(参见上面的链接)。

如何为 Python 设置 HTTP(S) 代理的示例:

How to tell Python to automatically use the proxy setting in Windows XP like R's internet2 option?

【讨论】:

  • 当我为 HTTP_PROXY 添加一个变量时,我得到的不是连接失败,而是“访问被拒绝,因为 .... 身份验证失败”当我使用请求模块连接到代理时也是如此。
  • 您的代理需要用户名和密码吗?
  • 是的,但它不适用于我的 Windows 帐户。我希望如果 IE 和 Chrome 正常工作,我可以“重新使用”访问互联网。
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 2015-08-12
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-19
  • 2013-04-06
相关资源
最近更新 更多