一、requests
之前使用python自带的urllib模块去请求一个网站或者接口,但是urllib模块太麻烦了,传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码,想把返回结果拿出来使用的话,还得用json,发get请求和post请求,也不通,使用比较麻烦,还有一个比较方便的模块,比urllib模块方便很多,就是requests模块,它使用比较方便,需要安装,pip install requests即可,下面是requests模块的实例
1.发送get请求
1 url ='http://IP/api/user/stu_info' 2 data = {'stu_name':'小黑'}#请求数据 3 req = requests.get(url,params=data)#发get请求 4 print(req.json())#返回的是个字典 5 print(req.text)#返回的是json串 string类型
2.发送post请求
1 url ='http://IP/api/user/login' 2 data = {'username':'niuhanyang', 'passwd':'aA123456'}#请求数据 3 req = requests.post(url,data)#发送post请求 4 print(req.json())
3.入参是json类型的
1 import random 2 url='http://IP/api/user/add_stu' 3 phone =random.randint(10000000000,99999999999) 4 data = { 5 "name":"ytt", 6 "grade":"天蝎座", 7 "phone":phone, 8 "sex":"女", 9 "age":28, 10 "addr":"河南省济源市北海大道32号" 11 } 12 req = requests.post(url,json=data)#指定入参json 13 print(req.json())#.json()方法获取的结果直接是一个字典
4.添加cookie
1 url= 'http://IP/api/user/gold_add' 2 data ={'stu_id':468,'gold':1000} 3 cookie ={'niuhanyang':'337ca4cc825302b3a8791ac7f9dc4bc6'} 4 req = requests.post(url,data,cookies=cookie)#使用cookies参数指定cookie 5 print(req.json())
5.添加header
1 url ='http://IP/api/user/all_stu' 2 header ={ 3 'Referer':'http://api.nnzhp.cn/' 4 } 5 req = requests.get(url,headers=header)#指定headers参数,添加headers 6 print(req.json())
6.上传文件、图片
1 url ='http://api.nnzhp.cn/api/file/file_upload' 2 # data = { 3 # 'file':open('ytt.txt',encoding='utf-8') 4 # }#上传文件 5 data = { 6 'file':open(r'C:\Users\yantiantian\Desktop\ytt.png','rb') 7 }#上传图片 8 req = requests.post(url,files=data)#指定files参数,传文件,是一个文件对象 9 print(req.json())
7.下载文件
1 url ='http://r.photo.store.qq.com/psb?/V11Xu0l62tE9ZU/YkT0cPNTMfGUHhTbTwB7*bZEySWaXvK1BlaRD3GGMgc!/r/dKzoe.WwLQAA&.jpg' 2 req = requests.get(url) 3 print(req.content)#返回的二进制的 4 fw = open('ytt.jpg','wb') 5 fw.write(req.content) 6 7 #下载mp3 8 url2 ='http://up.mcyt.net/?down/46779.mp3' 9 req = requests.get(url) 10 print(req.content)#返回的二进制的 11 fw = open('ytt.mp3','wb') 12 fw.write(req.content)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构