教你用python3怎么写这个小程序???
现在都用python3了,老师还用2来教,这里无私地提供python3的版本,希望对大家有帮助。
先简单讲解下,python3中已经统一只有一个urllib库了,所以没有老师讲的那么复杂。
另外注意:python3中的urlopen方法在urllib.request库下,注意使用时不要导错包了。
直接上代码吧。
from urllib import request, parse URL_IP = "http://httpbin.org/ip" URL_GET = "http://httpbin.org/get" def use_simple_urllib(): response = request.urlopen(URL_IP) print(">>>>Response Headers:") print(response.info()) print(">>>>Response Body:") print(response.read().decode('utf-8')) def use_params_urllib(): # 构建请求参数 params = parse.urlencode({'param1': 'hello', 'param2': 'world'}) print("Request Params:") print(params) # 发送请求 response = request.urlopen("?".join([URL_GET, "%s"]) % params) # 处理响应 print(">>>>Response Headers:") print(response.info()) print(">>>>Response Body:") print(response.read().decode('utf-8')) if __name__ == '__main__': print(">>>Use simple urllib:") use_simple_urllib() print(">>>Use params urllib") use_params_urllib()
urlopen方法返回的是HttpResponse对象,这个对象的方法getheaders()以列表形式返回头部信息,也可以用info(),打印效果跟老师一样,更好看些。
因为HttpResponse对象不能迭代,所以不能用老师的那个方法,只能用read()方法读出信息,再用decode()用utf-8格式解码出来!
python3中的urlencode方法在urllib.parse库里面。
喜欢python的朋友可以加我的口口群交流:146202960