使用requests模块的网络编程
python操作网络,也就是打开一个网站,或者请求一个http接口,本篇是介绍使用request模块的使用方式。
在使用requests模块之前需要先安装,在cmd中输入:pip install requests 即可。以下是各种接口的访问操作:
1)、发get请求
url = 'http://api.nnzhp.cn/api/user/stu_info' #接口的URL
data = {'stu_name':'小黑'} #请求数据,就是请求接口需要的参数,这个需要看具体的接口说明
req = requests.get(url,params=data) #发get请求
print(req.json()) #字典 也就是请求接口返回的结果
2)、发post请求
url = 'http://api.nnzhp.cn/api/user/login' #接口的URL
data = {'username':'niuhanyang','passwd':'aA123456'} #请求数据
req = requests.post(url,data) #发送post请求
print(req.json()) #请求接口返回的结果
3)、入参是json类型的
import random
phone=random.randint(10000000000,99999999999) #随机生成11位手机号码,在json里面使用
url='http://api.nnzhp.cn/api/user/add_stu'
data = {
"name":"小1",
"grade":"天蝎座",
"phone":phone,
"sex":"男",
"age":28,
"addr":"河南省济源市北海大道32号"
}
req = requests.post(url,json=data)
print(req.json())
4)、添加cookie
url = 'http://api.nnzhp.cn/api/user/gold_add'#接口地址
data = {'stu_id':468,'gold':10000}#请求参数
djl = {'niuhanyang':'337ca4cc825302b3a8791ac7f9dc4bc6'}#cookie
req = requests.post(url,data,cookies=djl)#发送post请求
print(req.json())
5)、添加header
nzhp.cn/api/user/all_stu'
header = {
'Referer':'http://api.nnzhp.cn/'
}
req = requests.get(url,headers=header)#发送请求
print(req.json())
6)、上传文件
url= 'http://api.nnzhp.cn/api/file/file_upload'#接口地址
data = {
'file':open(r'C:\Users\bjniuhanyang\Desktop\图\6bd9026dt935575932465&690.jpg','rb')
}#上传图片,图片时二进制,需要使用'rb'模式
req= requests.post(url,files=data)
print(req.json())
7)、下载文件
url = 'http://up.mcyt.net/?down/46779.mp3'#下载文件的地址
req = requests.get(url)#发送get请求
fw = open('aaa.mp3','wb')#图片使用‘wb’模式
fw.write(req.content)
以上举例说明7种接口的访问方式。
使用requests模块的网络编程的更多相关文章
- 第四模块:网络编程进阶&数据库开发 第1章·网络编程进阶
01-进程与程序的概念 02-操作系统介绍 03-操作系统发展历史-第一代计算机 04-操作系统发展历史-批处理系统 05-操作系统发展历史-多道技术 06-操作系统发展历史-分时操作系统 07-总结 ...
- 第四模块:网络编程进阶&数据库开发 练习
练习题 基于queue模块实现线程池 import threading from multiprocessing import Queue class A(threading.Thread): def ...
- 第四模块:网络编程进阶&数据库开发 口述
进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 子进程死了之后 ,父进程关闭的时候要清理掉子进程的僵尸进程(收尸),孤儿进程是指父进程先死掉了的,交给init管理. join() 等待子进 ...
- 使用python的socket模块进行网络编程
使用socket编程可以分成基于tcp和基于udp,tcp和udp两者最主要的区别是有无面向连接. 基于tcp的socket流程:
- 使用requests模块保存网络上的图片
import requests url = 'https://www.baidu.com/img/bd_logo1.png' r = requests.get(url=url) with open(' ...
- 第四模块:网络编程进阶&数据库开发 第2章·MySQL数据库开发
01-MySQL开篇 02-MySQL简单介绍 03-不同平台下安装MySQL 04-Windows平台MySQL密码设置与破解 05-Linux平台MySQL密码设置与破解 06-Mac平台MySQ ...
- 第四模块:网络编程进阶&数据库开发 考核实战
1.什么是进程?什么是线程? 什么是协程? 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 线程:在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 协程是一种用 ...
- 第三模块 面向对象& 网络编程基础 实战考核
1.简述构造方法和析构方法. 构造方法(__init__):主要作用是实例化时给实例一些初始化参数,或执行一些其它的初始化工作,总之因为这个__init__只要一实例化, 就会自动执行,不管你在这个方 ...
- 第三模块:面向对象&网络编程基础 第2章 网络编程
01-计算机基础 02-什么是网络 03-五层协议详解 04-传输层详解 05-什么是Socket 06-基于socket实现简单套接字通信 07-在简单套接字基础上加上通信循环 08-客户端与服务端 ...
随机推荐
- mybatis 整合redis作为二级缓存
核心关键在于定义一个RedisCache实现mytis实现的Cache接口 ** * @author tele * @Description RedisCache由于需要传入id, 由mybatis进 ...
- boostrap-非常好用但是容易让人忽略的地方【3】:clearfix
代码 显示结果 代码 结果
- 010.MFC_Progress
一.建立名为processCtrl的MFC工程,添加Progress Control 和 button控件.修改button Caption属性为start,ID属性为IDC_BTN_START 为进 ...
- markdown设置编辑基本语法
看到其他人写的东西,版面设计,文字样式,区域划分都是那么好看,我一直不知道是怎么设计的,今天发现了,做以记录. #一.设置Markdown编辑模式 二.Markdown编辑语法 一.标题 在想要设置为 ...
- CSS3(3)---2D变形(transform)
CSS3(3)---2D变形(transform) 2D变形是CSS3中具有颠覆性的特征之一,它常用的属性有:移动(translate).缩放(scale).旋转(rotate).倾斜 (skew). ...
- 小白学 Python 爬虫(31):自己构建一个简单的代理池
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 【简要题解】Hihocoder 重复旋律1-9简要题解
[简要题解]Hihocoder 重复旋律1-8简要题解 编号 名称标签 难度 1403 后缀数组一·重复旋律 Lv.4 1407 后缀数组二·重复旋律2 Lv.4 1415 后缀数组三·重复旋律3 L ...
- 洛谷$P$2472 蜥蜴 $[SCOI2007]$ 网络流
正解:网络流 解题报告: 传送门! $umm$一看就是个最大流呗,,,就直接考虑怎么建图趴$QwQ$ 首先看到这个高度减小其实就相当于对这个点的次数有约束,就显然拆点呗,流量为高度 然后$S$连向左侧 ...
- $HDU$ 4336 $Card\ Collector$ 概率$dp$/$Min-Max$容斥
正解:期望 解题报告: 传送门! 先放下题意,,,已知有总共有$n$张卡片,每次有$p_i$的概率抽到第$i$张卡,求买所有卡的期望次数 $umm$看到期望自然而然想$dp$? 再一看,哇,$n\le ...
- 「洛谷P1343」地震逃生 解题报告
P1343 地震逃生 题目描述 汶川地震发生时,四川XX中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...