【Python数据采集系列】一文解读requests.get()和requests.post()的区别

这是我的第228篇原创文章。

一、引言

requests.get(): requests.get 方法用于发送 HTTP GET 请求,它会向指定的 URL 发送获取页面请求,获取的东西可以缓存到浏览器中,用来获取资源
requests.post():requests.post 方法用于发送 HTTP POST 请求,它会向指定的 URL 发送请求,并将请求数据作为请求体发送给服务器。用来向服务器传递数据的,服务器会根据这些数据做出相应的反映,通常是用来模拟用户登录的,用于提交表单数据、上传文件等操作

二、response = requests.get() 

2.1 参数:   

  • url: 必需参数,表示要请求的URL地址。    

  • params: 可选参数,用于指定请求的查询参数。可以是一个字典、列表或字符串。    

  • headers: 可选参数,用于指定请求头部信息。可以是一个字典。    

  • cookies: 可选参数,用于指定请求的Cookies。可以是一个字典。    

  • timeout: 可选参数,用于指定请求的超时时间。可以是一个浮点数或元组。    

  • proxies: 可选参数,用于指定请求的代理服务器。可以是一个字典。    

  • verify: 可选参数,用于指定SSL证书验证方式。可以是一个布尔值或字符串。    

  • stream: 可选参数,表示是否使用流式传输。可以是一个布尔值。

查询参数,以字典的形式进行封装。requests会自动帮我们把这个参数拼接在接口请求地址中

params = {"key1": "value1", "key2": "value2"}

headers请求头部信息,在非API的情况下,请求头比不可少,通常User-Agent、Accept、Cookie等信息,包含信息越多,请求成功的几率越大:

headers = {"User-Agent": "",
        "Accept":"",
        "Cookie":"",
    }

在API请求的情况下,设置Authorization信息

headers = {'Authorization': f'Bearer {access_token}'}

如果url本地访问不了需要科学上网才能访问,这时候就需要设置代理(前提是本地已经搭好了梯子,21881是本地梯子的端口号需要自己去查询)

proxies = {
        'http': 'socks5://127.0.0.1:21881',
        'https': 'socks5://127.0.0.1:21881'
}

三、response = requests.post() 

3.1 参数解析:

  • url: 请求的url,必填;

  • data: 选填,请求参数;

  • json: 选填,请求参数;

  • kwargs:选填,可以传入headers、cookies等。

post请求参数到底是传data还是json,这时候我们要看请求头里的content-type类型(具体参照接口文档,没有接口文档的抓包)。

如果请求头中content-type为application/json, 为json形式,post请求使用json参数。如果请求头中content-type为application/x-www-form-urlencoded,为表单形式,post请求时使用使用data参数。请求类型为application/json,如果想用data传参,需要将字典类型数据转换为json字符串。

3.2 案例:利用gitee的API创建pull request

url:

url = f"https://gitee.com/api/v5/repos/{owner}/{repo_name}/pulls"

设置headers:

headers = {
        "Authorization": f"Bearer {access_token}"
    }

设置data:

data = {
        "title": title,
        "head": head,
        "base": base
    }

发送请求:

resp = requests.post(url, headers=headers, data=data)

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据杂坛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值