Python requests模块
创始人
2024-05-26 05:45:45
0

Python requests 模块,该模块主要用来发 送 HTTP 请求。

一、requests 方法

在这里插入图片描述

url 请求 url。

data 参数为要发送到指定 url 的字典、元组列表、字节或文件对象。

json 参数为要发送到指定 url 的 JSON 对象。

args 为其他参数,比如 cookies、headers、verify等。

示例:

# 导入 requests 包
import requests# 发送请求
x = requests.get('https://www.baidu.com/')# 返回 http 的状态码
print(x.status_code)# 响应状态的描述
print(x.reason)# 返回编码方式
print(x.apparent_encoding)

输出结果:

200
OK
utf-8

1、get方法详解

requests.get(url, params, args)中,除了必传的请求地址url外,还有1个默认参数params,这个参数会对url进行处理。一般get方式请求,参数是通过url?key1=value1&key2=value2....进行拼接的(即参数字段和值是=连接,参数之间连接符是&,接口路径通过?来连接参数内容),如果url已经带有参数,则可以不用params参数,如果url没有带参数,则requests.get()会将params的内容按照拼接逻辑拼接到url后。args 为其他参数,比如 cookies、headers、verify等。

import requests
# url未携带参数数据
r1 = requests.get("http://httpbin.org/get?name=gemey&age=22")
print("----------url未携带params参数,请求数据放到url地址中----------")
print(r1.text)# url携带参数数据
r2 = requests.get("http://httpbin.org/get", params={"name": "gemev", "age": 22})
print("\n----------url携带params参数,请求数据放到params中----------")
print(r2.text)# url携带参数数据中有列表
r3 = requests.get("http://httpbin.org/get", params={"name": "gemev", "age": [22, 45]})
print("\n----------url携带params参数,请求数据放到params中,数据中有列表----------")
print(r3.text)

2、post方法详解

如果想上传的数据较大,或者上传的数据对服务器方的数据库、文件等内容有修改,一般使用Post请求,post请求上传数据的方式有:表单、Json、文件等。

2.1、表单

post请求上传表单数据时,是通过data参数上传的,入参的数据是字典对象(dict)

格式:post(url, data, args)

import requestsurl = 'http://httpbin.org/post'
data = {'name': 'jack','age': 23
}
r = requests.post(url, data=data)
print(r.text)

如果不定义Content-Type,会被默认设置为application/x-www-form-urlencoded

2.2、Json

json也是post请求经常用到的数据上传格式,如果上传的数据是json格式,需要将python字典对象通过json参数传入

格式:post(url, json, args)

# -*- coding: utf-8 -*-
import requestsurl = 'http://httpbin.org/post'
data = {'name': 'jack','age': 23
}
r = requests.post(url, json=data)
print(r.text)

如果不定义Content-Type,Content-Type会被默认设置为application/json

2.3、文件上传

2.4、其他数据类型

Post请求不止上传文件、发送form、json数据,还支持html、xml等数据,这些数据一般通过data参数传入,但是需要在请求头的Content-Type字段申明数据类型。

3、定义header

headers中有很多内容,他们是以键对的形式定义出来,在request中,则是用过headers=headers来区分,前面为关键字headers,后面为自定义的头信息变量,变量名为headers

# -*- coding: utf-8 -*-
import requestsurl = 'http://httpbin.org/post'
headers = {'Content-Type': 'application/json;charset=UTF-8', 'User-Agent':'self-defind-user-agent'}
data = {'name': 'jack','age': 23
}
r = requests.post(url, json=data, headers=headers)
print(r.text)

4、定义cookie

很多接口请求需要附带cookies,服务端校验成功后才会返回正常的响应数据。

requests提供2种传递Cookie的方式:

方式一:通过请求头headers信息传递:headers参数中包含Cookie键值对(为了让服务端正常识别,cookie的值格式尽量为:key1=value1; key2=value2; xxx; keyn=valuen,)

# -*- coding: utf-8 -*-
import requestsurl = 'http://httpbin.org/post'
headers = {'Cookie': 'key1=value1;key2=value2', 'Content-Type': 'application/json;charset=UTF-8'}
data = {'name': 'jack','age': 23
}
r = requests.post(url, json=data, headers=headers)
print(r.text)

方式二:通过关键字参数cookies传递:cookies参数被传入字典,字典数据中的每个键值代表了一个cookie,键表示cookie的变量名称,值为对应的cookie值。

# -*- coding: utf-8 -*-
import requestsurl = 'http://httpbin.org/post'
headers = {'Content-Type': 'application/json;charset=UTF-8'}
cookies = {'c1': 'cookie_1', 'c2': 'cookie_value2'}
data = {'name': 'jack','age': 23
}
r = requests.post(url, json=data, headers=headers, cookies=cookies)
print(r.text)

5、超时设置

6、代理设置

7、认证

8、会话

二、 response 对象

每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。,可以通过如下方法获取对应的响应信息,示例同上。
在这里插入图片描述

相关内容

热门资讯

求经典台词和经典旁白 求经典台词和经典旁白谁有霹雳布袋戏里的经典对白和经典旁白啊?朋友,你尝过失去的滋味吗? 很多人在即将...
小王子第二章主要内容概括 小王子第二章主要内容概括小王子第二章主要内容概括小王子第二章主要内容概括
爱情睡醒了第15集里刘小贝和项... 爱情睡醒了第15集里刘小贝和项天骐跳舞时唱的那首歌是什么谢谢开始找舞伴的时候是林俊杰的《背对背拥抱》...
世界是什么?世界是什么概念?可... 世界是什么?世界是什么概念?可以干什么?物质的和意识的 除了我们生活的地方 比方说山 河 公路 ...
全职猎人中小杰和奇牙拿一集被抓 全职猎人中小杰和奇牙拿一集被抓动画片是第五十九集,五十八集被发现,五十九被带回基地,六十逃走
“不周山”意思是什么 “不周山”意思是什么快快快快......一座山,神话里被共工撞倒了。
《揭秘》一元一分15张跑得快群... 一元一分麻将群加群主微【ab120590】【tj525555】 【mj120590】等风也等你。喜欢...
玩家必看手机正规红中麻将群@2... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
始作俑者15张跑的快群@24小... 微信一元麻将群群主微【ab120590】 【tj525555】【mj120590】一元一分群内结算,...
《重大通知》24小时一元红中麻... 加V【ab120590】【tj525555】【mj120590】红中癞子、跑得快,等等,加不上微信就...
盘点一下正规一块红中麻将群@2... 一元一分麻将群加群主微:微【ab120590】 【mj120590】【tj525555】喜欢手机上打...
(免押金)上下分一元一分麻将群... 微【ab120590】 【mj120590】【tj525555】专业麻将群三年房费全网最低,APP苹...
[解读]正规红中麻将跑的快@群... 微信一元麻将群群主微【ab120590】 【tj525555】【mj120590】一元一分群内结算,...
《普及一下》全天24小时红中... 微【ab120590】 【mj120590】【tj525555】专业麻将群三年房费全网最低,APP苹...
优酷视频一元一分正规红中麻将... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
《火爆》加入附近红中麻将群@(... 群主微【ab120590】 【mj120590】【tj525555】免带押进群,群内跑包包赔支持验证...
《字节跳动》哪里有一元一分红中... 1.进群方式-[ab120590]或者《mj120590》【tj525555】--QQ(QQ4434...
全网普及红中癞子麻将群@202... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
「独家解读」一元一分麻将群哪里... 1.进群方式《ab120590》或者《mj120590》《tj525555》--QQ(4434063...
通知24小时不熄火跑的快群@2... 1.进群方式《ab120590》或者《mj120590》《tj525555》--QQ(4434063...