Python的urllib.quote和urllib.unquote在Python 2.6.5中不能正确处理Unicode。 这是发生了什么事情: In [5]: print urllib.unquote(urllib.quote(u'Cataño')) ————————————————————————— KeyError Traceback (most recent call last) /home/kkinder/<ipython console> in <module>() /usr/lib/python2.6/urllib.pyc in quote(s, safe) 1222 safe_map[c] = (c in safe) and c or ('%%%02X' % i) 1223 _safemaps[cachekey] = safe_map -> 1224 res = map(safe_map.__getitem__, s) 1225 return ''.join(res) 1226 KeyError: u'\xc3' 将值编码为UTF8也不起作用: In [6]: print urllib.unquote(urllib.quote(u'Cataño'.encode('utf8'))) […]
当我尝试按照与URL编码相关的Python Wiki示例进行操作时: >>> import urllib >>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0}) >>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params) >>> print f.read() 第二行发生错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'urlencode' 我错过了什么?
在urllib2和POST调用中有很多东西,但是我遇到了一个问题。 我试图做一个简单的POST调用服务: url = 'http://myserver/post_service' data = urllib.urlencode({'name' : 'joe', 'age' : '10'}) content = urllib2.urlopen(url=url, data=data).read() print content 我可以看到服务器日志,它说,我正在做GET调用,当我发送数据参数到urlopen。 该库正在提出一个404错误(未find),这是GET调用是正确的,POST调用处理得很好(我也尝试在HTML表单中的POST)。 任何线索都会被折服
我对Python的urllib很新。 我需要做的是为请求发送到服务器设置自定义标题。 具体来说,我需要设置内容types和授权标题。 我已经看了python文档,但我一直无法find它。
我有一个像“Tanım”这样的编码为“Tan%u0131m”的unicodestring。 我怎样才能将这个编码的string转换回原来的Unicode。 显然urllib.unquote不支持unicode。
什么时候会有人使用httplib,何时使用urllib? 有什么区别? 我想我准备urllib使用httplib,我打算做一个应用程序,将需要作出http请求,到目前为止,我只使用httplib.HTTPConnection python的请求,并阅读关于urllib我看我也可以使用它的请求,那么这个或那个的好处是什么?
即使远程http服务器上不存在该文件, urllib.urlretrieve将静默地返回,它只是将html页面保存到指定的文件中。 例如: urllib.urlretrieve('http://google.com/abc.jpg', 'abc.jpg') 只是悄悄地返回,即使abc.jpg在google.com服务器上不存在,生成的abc.jpg不是一个有效的jpg文件,它实际上是一个html页面。 我猜测返回的头文件(一个httplib.HTTPMessage实例)可以用来实际地告诉检索成功与否,但是我找不到httplib.HTTPMessage任何文档。 任何人都可以提供关于这个问题的一些信息?
我想赶上一个具体的http错误,而不是整个家庭的任何一个..我正在试图做的是 – import urllib2 try: urllib2.urlopen("some url") except urllib2.HTTPError: <whatever> 但我最终是捕捉任何types的http错误,但我只想捕捉指定的网页不存在! 可能这是HTTP错误404 ..但我不知道如何指定只捕获错误404,并让系统运行其他事件的默认处理程序。
我是Python新手,阅读别人的代码: 应urllib.urlopen()后跟urllib.close() ? 否则,会泄漏连接,对吗?
使用cgi.parse_qs() ,如何将结果(字典)转换回查询string? 寻找类似于urllib.urlencode()东西。