题
我使用了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:43444
,64.79.209.203:34968
,64.79.197.36:43444
,209.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)
这将禁用密码提示共
不隶属于 StackOverflow