Python httplib.InvalidURL:非数字端口失败

mil*_*uts 4 python urllib2 python-2.7

我正在尝试在Python中打开需要用户名和密码的URL.我的具体实现如下:

http://char_user:char_pwd@casfcddb.example.com/......
Run Code Online (Sandbox Code Playgroud)

我得到以下错误吐到控制台:

httplib.InvalidURL: nonnumeric port: 'char_pwd@casfcddb.example.com'
Run Code Online (Sandbox Code Playgroud)

我正在使用urllib2.urlopen,但错误暗示它不理解用户凭据.它看到":"并期望端口号而不是密码和实际地址.我在这里做错了什么想法?

Uku*_*kit 9

使用BasicAuthHandler来提供密码:

import urllib2

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, "http://casfcddb.xxx.com", "char_user", "char_pwd")
auth_handler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
urllib2.urlopen("http://casfcddb.xxx.com")
Run Code Online (Sandbox Code Playgroud)

或使用请求库:

import requests
requests.get("http://casfcddb.xxx.com", auth=('char_user', 'char_pwd'))
Run Code Online (Sandbox Code Playgroud)