python学习笔记(十七)网络编程之urllib模块
如何用python打开一个网站或者请求一个接口呢,我们在这篇博客介绍一下。
首先我们得导入一个urllib模块,这个模块是python自带的标准模块,直接导入就能使用,但是用起来不方便,先看个简单的打开一个网页的例子吧。
from urllib import request,parse url = 'http://www.baidu.com' req = request.urlopen(url) #打开一个url,发get请求 content = req.read().decode() #获取返回结果,返回结果是byte类型,需要解码 fw = open('baidu.html','w',encoding='utf-8') fw.write(content)
下面我们做一个get请求的接口,也是类似的操作
import json url='http://api.python.cn/api/user/stu_info?stu_name=xiaohei' req = request.urlopen(url) #打开一个url,发get请求 content = req.read().decode() #获取返回结果 res_dic = json.loads(content) #返回的结果转成字典 if res_dic.get('error_code') == 0: print('测试通过') else: print('测试失败',res_dic)
如果请求是post请求呢,那么我们需要将参数也写入进去
url = 'http://api.python.cn/api/user/login' data = { 'username':'admin', 'passwd':'aA123456' } #请求数据 data = parse.urlencode(data) #urlencode,自动给你拼好参数 # xx=xx&xx=11 req = request.urlopen(url,data.encode()) #发post请求 print(req.read().decode())
从以上例子可以看出,urllib这个模块用起来确实很麻烦,像post请求,需要将参数通过urlencode拼接起来,然后encode编码,然后再去发送请求,获取到结果后又需要将返回数据进行decode解码。可以说是相当费劲。那么下篇博客我们就来介绍网络编程中常用的好用的模块吧。。。。。