这是我在python 3中使用urllib的问题
我编写了一段代码,该代码在Python 2.7中运行良好,并且正在使用urllib2。它转到Internet上的页面(需要授权),并从该页面获取我的信息。
对我来说,真正的问题是我无法使我的代码在python 3.4中工作,因为没有urllib2,而且urllib的工作方式有所不同。即使经过数小时的谷歌搜索和阅读,我仍然一无所获。因此,如果有人可以帮助我解决这个问题,我将非常感谢您的帮助。
这是我的代码:
request = urllib2.Request('http://mysite/admin/index.cgi?index=127')
base64string = base64.encodestring('%s:%s' % ('login', 'password')).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
resulttext = result.read()
幸运的是,我终于弄清楚了它的工作方式。这是我的代码:
request = urllib.request.Request('http://mysite/admin/index.cgi?index=127')
base64string = base64.b64encode(bytes('%s:%s' % ('login', 'password'),'ascii'))
request.add_header("Authorization", "Basic %s" % base64string.decode('utf-8'))
result = urllib.request.urlopen(request)
resulttext = result.read()
毕竟,urllib还有另外一个区别:resulttext
在我的情况下,变量的类型为,<bytes>
而不是<str>
,因此要对其中的文本进行处理,我必须对其进行解码:
text = resulttext.decode(encoding='utf-8',errors='ignore')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句