模块学习:requests
requests 是什么
requests是一个用于进行HTTP请求及处理的第三方库
安装
pip install requests
使用
GET访问
- 最简单的访问
import requests # 导入库/模块
url = 'https://www.douban.com/' # 定义访问url
res = requests.get(url) # 进行get访问
- 带参数的访问
import requests # 导入库/模块
url = 'https://www.douban.com/search' # 定义访问url
param = {'q': 'python'} # dict 字典格式参数
res = requests.get(url, params=param) # 进行get访问
print(res.url) # 实际访问url
'https://www.douban.com/search?q=python'
- 带Header的访问
import requests # 导入库/模块
url = 'https://www.douban.com/search' # 定义访问url
param = {'q': 'python'} # dict 字典格式参数
res = requests.get(url, params=param, headers={
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit'}) # 进行get访问
POST访问
- 最简单的访问
import requests # 导入库/模块
url = 'https://www.douban.com/' # 定义访问url
res = requests.post(url) # 进行post访问
- 带参数的访问
import requests # 导入库/模块
url = 'https://www.douban.com/search' # 定义访问url
data = {'q': 'python'} # dict 字典格式参数
res = requests.post(url, data=data) # 进行post访问 此时请求的数据编号是 application/x-www-form-urlencoded
# 如果要传输json数据需指定参数名为json
res = requests.post(url, json=data)
print(res.url) # 实际访问url
- 带Header的访问
import requests # 导入库/模块
url = 'https://www.douban.com/search' # 定义访问url
data = {'q': 'python'} # dict 字典格式参数
res = requests.post(url, data=data, headers={
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit'}) # 进行post访问
- 上传文件
import requests # 导入库/模块
url = 'https://www.douban.com/search' # 定义访问url
#使用'rb'二进制模式读取文件,获取的到bytes长度才是文件的真实长度
upload_files = {'file': open('demo.xls', 'rb')}
res = requests.post(url, files=upload_files) # 进行post访问
响应
import requests # 导入库/模块
url = 'https://www.douban.com/search' # 定义访问url
data = {'q': 'python'} # dict 字典格式参数
res = requests.post(url, data=data, headers={
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit'}) # 进行post访问
print(res.url) # 实际请求的URL
print(res.headers) # 获取响应头
print(res.headers['Content-Type']) # 获取响应头中的Content-Type
print(res.cookies['cookie_key']) # 获取cookies
print(res.status_code) # 响应状态码
# 200
print(res.encoding) # 编码
# utf-8
print(res.text) # 响应内容文本
print(res.content) # 响应内容bytes对象
print(res.json()) # 响应内容json对象
session/cookies管理
- 通过请求时带入cookies参数进行交互
import requests # 导入库/模块
url = "https://www.douban.com/search"
data = {'q': 'python'} # dict 字典格式参数
requests.post(url, data=data, cookies={'sessionId': '12345'}) # 进行post访问
- 通过session自动管理cookies
import requests # 导入库/模块
url = "https://www.douban.com/search"
session = requests.session()
data = {'q': 'python'} # dict 字典格式参数
# 使用session对象进行请求访问
session.post(url, data=data) # 进行post访问