[Web自动化] Requests模块请求参数

6.3 Requests模块请求参数

6.3.1 为url传递参数

方式一:通过在url地址后带上参数

py 复制代码
url = 'http://front-gateway.mtime.com/unionSearch2?year=2017'
r = requests.get('url')

方式二:通过在get方法中添加params参数

py 复制代码
params = {'year': '2017'}
r = requests.get(url=url, params=params)# 字典传递参数,如果值为None的键不会被添加到url中

params参数仅在get请求中明确使用,尽管在post请求中也可以传递(但通常不推荐,因为POST请求应该通过请求体发送数据)。

6.3.2 定制头和Cookie信息

py 复制代码
import requests
header = {'user-agent': 'my-app/0.0.1'}
Cookie = {'key': 'value'}
r = requests.get('your url', headers=header, Cookies=Cookie)
headers = {'content-type': 'application/json',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
r = requests.post('https://api.github.com/some/endpoint', data=data, headers=headers)

你可以通过 headers 参数来设置 HTTP 请求的头部信息。这对于模拟浏览器访问、设置认证信息等场景非常有用。

6.3.3 data:发送表单数据

py 复制代码
data = {'some': 'data'}
r = requests.post('your url', data= data)

说明:

1、在post请求中,data参数用于发送表单数据。它可以是一个字典、字节或类文件对象。如果是字典,它会被编码成表单数据(application/x-www-form-urlencoded)。对于JSON数据,应该使用json参数而不是data。

2、对于post请求,data和json是常用的,但在get请求中,data是不被使用的(尽管技术上可以传递,但requests库会忽略它,因为HTTP GET请求不应该有请求体)。

6.3.4 超时设置

py 复制代码
r = requests.get('url', timeout=1)# 设置秒数超时,仅对于连接有效

6.3.5 代理设置

py 复制代码
proxies = {'http':'ip1','https':'ip2' }
requests.get('url', proxies=proxies)
proxies = {"http": http://user:pass@10.10.1.10:3128/}# 代理需要用户名和密码

6.3.6 上传文件

py 复制代码
url = 'http://m.ctrip.com'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)

files参数仅在post请求中使用,用于上传文件。

6.3.7 发送json请求

py 复制代码
r = requests.post('https://api.github.com/some/endpoint', data=json.dumps({'some': 'data'}))

6.3.8 身份认证

py 复制代码
r = requests.get('url', auth=('user', 'passwd'))

6.3.9 忽略证书

报错:Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1091)'))

py 复制代码
requests.get(url, verify=False)# ,忽略证书验证

6.3.10 重定向

py 复制代码
r = requests.get('url', allow_redirects=False)# 禁用客户端重定向处理。默认开启。
相关推荐
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
怕浪猫2 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建
前端·electron·ai编程
曲幽2 小时前
我用了FastApiAdmin后,连夜把踩过的坑都整理出来了
redis·python·postgresql·vue3·fastapi·web·sqlalchemy·admin·fastapiadmin
小鹏linux2 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
北京耐用通信3 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
在角落发呆3 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
前端若水3 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js
Bigger3 小时前
mini-cc:一个轻量级 AI 编程助手的诞生
前端·ai编程·claude
涵涵(互关)4 小时前
Naive-ui树型选择器只显示根节点
前端·ui·vue
BY组态4 小时前
Ricon组态系统最佳实践:从零开始构建物联网监控平台
前端·物联网·iot·web组态·组态