网络编程之 requests 模块
1. get 请求
1 import requests
2 url = 'http://api.xxxx.cn/api/user/stu_info?stu_name=xiaohei'
3 data = {'stu_name':'小黑'}
4 req = requests.get(url,params=data) #发get请求
5 print(req.json())
6 print(type(req.json())) #返回类型为:字典
7 print(req.text)
8 print(type(req.text)) #返回类型为:字符串的json串
2. post 请求
import requests
url = 'http://api.xxxx.cn/api/user/login'
data = {'username':'joseph','passwd':'aA123456'}
req = requests.post(url,data)
print(req.json())
3. 上传文件
import requests,json
url = 'http://api.xxxx.cn/api/file/file_upload'
#上传txt等格式
# data = {
# 'file':open('baidu.html',encoding='utf-8')
# }
#上传图片格式
data = {
'file':open(r'C:\Users\Administrator\Desktop\joseph.PNG','rb')
} req = requests.post(url,files = data)
# print(req.json()) #返回成字典,
# 如果报错,json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
#说明返回不成字典,要用req.text
print(req.text)
4. 入参为json类型
import requests,random
phone = random.randint(10000000000,99999999999)
url = 'http://api.xxxx.cn/api/user/add_stu'
data = {
"name":"joseph",
"grade":"天蝎座",
"phone":phone,
"sex":"男",
"age":28,
"addr":"河南省济源市北海大道32号"
}
req = requests.post(url,json=data) #入参是json时,采用json=data
print(req.json())
5. 添加cookie
import requests,random
phone = random.randint(10000000000,99999999999)
url = 'http://api.xxxx.cn/api/user/gold_add'
data = {
"stu_id":468,
"gold":178
} #传入的参数
cookie = {'joseph':'337ca4cc825302b3a8791ac7f9dc4bc6'} #cookie
req = requests.post(url,data,cookies = cookie)
print(req.json())
6. 添加header
import requests
url = 'http://api.xxxx.cn/api/user/all_stu'
header = {
'Referer':'http://api.xxxx.cn/'
}
req = requests.get(url,headers= header)
print(req.json())
7. 下载图片
import requests
url = 'http://imgsrc.baidu.com/imgad/pic/item/9d82d158ccbf6c8154bdd5ccb63eb13533fa4008.jpg'
req = requests.get(url)
# res = req.content #req.content返回的是二进制
# print(res)
fw = open('s.jpg','wb')
fw.write(req.content)
网络编程之 requests 模块的更多相关文章
- python学习笔记(十八)网络编程之requests模块
上篇博客中我们使用python自带的urllib模块去请求一个网站,或者接口,但是urllib模块太麻烦了,传参数的话,都得是bytes类型,返回数据也是bytes类型,还得解码,想直接把返回结果拿出 ...
- python学习笔记(十七)网络编程之urllib模块
如何用python打开一个网站或者请求一个接口呢,我们在这篇博客介绍一下. 首先我们得导入一个urllib模块,这个模块是python自带的标准模块,直接导入就能使用,但是用起来不方便,先看个简单的打 ...
- 网络编程之socket模块
一.TCP协议 TCP是可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:电子邮件.文件传输程序. 二.基于TCP ...
- 网络编程之socket
网络编程之socket socket:在网络编程中的一个基本组件,也称套接字. 一个套接字就是socket模块中的socket类的一个实例. 套接字包括两个: 服务器套接字和客户机套接字 套接字的实例 ...
- python3网络编程之socketserver
本节主要是讲解python3网络编程之socketserver,在上一节中我们讲到了socket.由于socket无法支持多用户和多并发,于是就有了socket server. socket serv ...
- 网络编程之socketserver
网络编程之socketserver """ socketserver.py 中的5个基础类 +------------+ | BaseServer | +-------- ...
- 网络编程之socketserver初识
网络编程之socketserver初识 Server #!/usr/bin/env python # @Author : "Wjl" # @Date : 2017/12/22 # ...
- 网络编程之TCP/IP各层详解
网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只 ...
- Python网络编程之TCP套接字简单用法示例
Python网络编程之TCP套接字简单用法示例 本文实例讲述了Python网络编程之TCP套接字简单用法.分享给大家供大家参考,具体如下: 上学期学的计算机网络,因为之前还未学习python,而jav ...
- [网络编程之Socket套接字介绍,套接字工作流程,基于TCP协议的套接字程序]
[网络编程之Socket套接字介绍,套接字工作流程,基于TCP协议的套接字程序] 为何学习socket套接字一定要先学习互联网协议: 1.首先:要想开发一款自己的C/S架构软件,就必须掌握socket ...
随机推荐
- 关于ie浏览器query ajax提交单个操作无效
第一次写博客 大家不要喷我!!!! 需求需要开发一个无刷新的用户注销和恢复注销功能 遇到的实际问题直接贴图----> 这是开始页面 当点击红xx时提示修改成功 这里似乎是对的哈 但是等点击刷新的 ...
- 记一次修改dotnet-cnblogs图片路径的正则匹配规则
大佬的GitHub 前言 因为最近一时心血来潮,学了markdown,我觉得但凡是个人,对于不用word或html就可以有不错的排版,而且使用起来简单便捷,都会投向markdown的怀抱中的.又因 ...
- 一、100ASK_IMX6ULL嵌入式裸板学习_LED实验(知识点补充)
知识点补充: Linux进程中的五个段 BSS段(Block Started bySymbol,意为"以符号开始的块"): BSS,是Unix链接器产生的未初始化数据段.通常是 ...
- clion+mx+stm32
- Jenkins提供了哪些功能
我的这篇文章仅仅是简单的根据上文,介绍Jenkins提供了哪些功能.具体大家还是要自己学习啦~ 官网首页就提供了windows版本的Jenkins安装包.我们可以下载一个用于学习.安装后自动打开htt ...
- jQuery对象和js对象是怎样转换的?
两种转换方式将一个jQuery对象转换成js对象:[index]和.get(index); (1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的js对象. 如:var $v ...
- 27_wbpack_自定义Plugin
Tapable 要想学会自定义Plugin就要先了解Tapable这个库 在我们的wbpack中有两个非常重要的两个类Compiler和Compilation 他们是通过注入插件的方式,来监听webp ...
- C# 在GridView里面使用a标签下载文件(图片)
不能使用ajax进行下载文件的操作,具体原因需百度 前端页面,在GridView里面使用模板列,模板列放a标签 <cimesui:cimesGridView ID="GridView1 ...
- COOP/COHP(上)-PROOUT
晶体轨道重叠布居 COOP(crystal orbital overlap population)的一个更为直观的名称是 重叠布居权重的态密度 (overlap population-weighted ...
- File.createTempFile()
File.createTempFile()的两个参数,是前缀和后缀,临时文件的文件名,会在前缀和后缀中各截取一部分,再拼接上随机数进行生成: 推荐手动指定目录,尽量指定到项目路径下,默认的磁盘位置,有 ...