我使用了urllib.urlopen一些HTTP代理和有时(可能时,他们需要授权)我得到以下提示印刷到控制台:

Enter username for Private Proxy Access (country) at xxx.xxx.xxx.xxx:xxxx

我怎样才能提高人们对这样的事情发生的异常?

这里的示例:

from urllib import urlopen

p = '64.79.209.238:36867'
print urlopen('http://google.com', proxies={'http': 'http://'+p})

在的情况下所提到的代理模具太快,这里有一些替代64.79.197.36:4344464.79.209.203:3496864.79.197.36:43444209.59.207.197:3438

有帮助吗?

解决方案

您需要覆盖FancyURLopener.prompt_user_passwd方法:

class AuthorizationRequired(Exception):

    pass


class MyURLOpener(urllib.FancyURLopener):

    def prompt_user_passwd(self, host, realm):
        raise AuthorizationRequired()


opener = MyURLOpener(proxies={'http': 'http://'+p})
fp = opener.open(url)

其他提示

urllib.urlencode不<强>过打印该消息。该方法嗟排在首位的网络。你的问题是其他地方。

我猜你正在运行的背景下,打印信息的其他一些守护进程。

请提供准确的可重复的代码和信息。触发消息代理的实施例也将是很好的。

我适于丹尼斯代码一点这样:

import urllib
urllib.FancyURLopener.prompt_user_passwd = lambda *a, **k: (None, None)

这将禁用密码提示共

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top