moo*_*ose 14 urllib python-3.x
这是我在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()
Run Code Online (Sandbox Code Playgroud)
moo*_*ose 11
谢天谢地,我们终于想出了它的工作方式.这是我的代码:
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()
Run Code Online (Sandbox Code Playgroud)
毕竟,urllib还有一个区别:resulttext我的情况中的变量有类型<bytes>而不是<str>,所以要对其中的文本做一些事我必须解码它:
text = resulttext.decode(encoding='utf-8',errors='ignore')
Run Code Online (Sandbox Code Playgroud)
urllib.request怎么样?它似乎拥有你需要的一切.
import base64
import urllib.request
request = urllib.request.Request('http://mysite/admin/index.cgi?index=127')
base64string = bytes('%s:%s' % ('login', 'password'), 'ascii')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib.request.urlopen(request)
resulttext = result.read()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41267 次 |
| 最近记录: |