网络编程之 urllib 模块
首先urlib并不是一个很好用的方法,这里仅作简单介绍。一般我们用requests方法来代替urlib方法。
1. get请求
1 from urllib import request 2 url = 'http://www.baidu.com' 3 req = request.urlopen(url) #打开一个url,发送get请求 4 content = req.read().decode() #读取源代码 5 fw = open('baidu.html','w',encoding='utf-8') 6 fw.write(content)
第1行:从urllib中导入request函数,也可以写成:import urllib.request
第2行:get请求的url链接,如果是在接口测试中,后面应带上参数,例如:http://api.xxxx.cn/api/user/stu_info?stu_name=xiaohei
第3行:打开url,发送get请求,获取到的是
第4行:读取源代码,直接读出来的是二进制格式,要进行解码
第5行:创建一个文件,以“w”模式
第6行:将读取的源代码写到baidu.html中
2. post 请求
1 from urllib import request,parse 2 url = 'http://api.xxxx.cn/api/login' 3 data = { 4 'username':'xxxx', 5 'passwd':'xxxxxxxx' 6 } #请求数据 7 data = parse.urlencode(data) #把字典变成了字符串:username=xxxx&passwd=xxxxxxx,拼好参数 8 req = request.urlopen(url,data.encode()) #传入的参数要byte类型 9 print(req.read().decode())
第1行:从urllib中导入request、parse函数
第2行:请求地址
第3行:post 入参,定义的data是字典格式
第7行:parse.urlencode()方法会把字典变成一个字符串,并且拼接成username=xxxxx&passwd=xxxxxx的格式。
第8行:传入的参数要转换成二进制格式
第9行:打印出post结果,要解码。