
09-requests-安装及入门
发布日期:2021-05-07 13:05:30
浏览次数:25
分类:技术文章
本文共 3621 字,大约阅读时间需要 12 分钟。
目录
安装
- pip install requests
快速上手
发送请求
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import requests# 发送get请求r = requests.get('https://api.github.com/events')print(r)# 发送post请求r = requests.post('http://httpbin.org/post', data={'key': 'value'})print(r)# 发送PUT,DELETE,HEAD 以及 OPTIONS请求r1 = requests.put('http://httpbin.org/put', data={'key': 'value'})r2 = requests.delete('http://httpbin.org/delete')r3 = requests.head('http://httpbin.org/get')r4 = requests.options('http://httpbin.org/get')print(r1, r2, r3, r4)
传递URL参数
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import requests# 例如, http://httpbin.org/get?key=val&key2=value2payload = {'key1': 'value1', 'key2': 'value2'}r = requests.get("http://httpbin.org/get", params=payload)print(r.url)# 列表作为值传入payload = {'key1': 'value1', 'key2': ['value2', 'value3']}r = requests.get('http://httpbin.org/get', params=payload)print(r.url)
响应内容
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import requestsr = requests.get('https://api.github.com/events')# 文本格式print(r.text)print(type(r.text))# 二进制格式print(r.content)print(type(r.content))# json格式print(r.json())print(type(r.json()))# 原始响应内容print(r.raw)print(type(r.raw))
添加请求头
# 添加请求头,只要简单地传递一个 dict 给 headers 参数就可以了url = 'https://api.github.com/some/endpoint'headers = {'user-agent': 'my-app/0.0.1'}r = requests.get(url, headers=headers)
发送post请求
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import jsonimport requests# 发送post请求# 1.表单形式的数据,只需简单地传递一个字典给 data 参数payload = {'key1': 'value1', 'key2': 'value2'}r = requests.post("http://httpbin.org/post", data=payload)print(r.text)# 还可以为 data 参数传入一个元组列表。在表单中多个元素使用同一 key 的时候,这种方式尤其有效payload = (('key1', 'value1'), ('key1', 'value2'))r = requests.post('http://httpbin.org/post', data=payload)print(r.text)# 2.请求体-json格式数据url = 'https://api.github.com/some/endpoint'payload = {'some': 'data'}r = requests.post(url, data=json.dumps(payload))# 使用 json 参数直接传递url = 'https://api.github.com/some/endpoint'payload = {'some': 'data'}r = requests.post(url, json=payload)# 3.上传文件url = 'http://httpbin.org/post'files = {'file': open('report.xls', 'rb')}r = requests.post(url, files=files)print(r.text)# 显式地设置文件名,文件类型和请求头url = 'http://httpbin.org/post'files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}r = requests.post(url, files=files)print(r.text)
响应信息
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import requestsr = requests.get('http://httpbin.org/get')# 响应状态码print(r.status_code)# 响应头print(r.headers)print(r.headers['Content-Type']) # 获取响应头某些字段值print(r.headers.get('content-type'))
Cookie
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import requests# 添加cookiesurl = 'http://httpbin.org/cookies'cookies = dict(cookies_are='working')r = requests.get(url, cookies=cookies)print(r.text)# 获取cookies# print(r.cookies.get('cookie_name')) # 示例,运行会报错# Cookie 的返回对象为 RequestsCookieJar,它的行为和字典类似,但接口更为完整,适合跨域名跨路径使用jar = requests.cookies.RequestsCookieJar()jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')url = 'http://httpbin.org/cookies'r = requests.get(url, cookies=jar)print(r.text)
超时与重定向
# -*- coding: utf-8 -*-# @Time : 2021/5/5# @Author : 大海import requestsr = requests.get('http://github.com')# 请求urlprint(r.url)# 请求历史print(r.history)# 重定向设置allow_redirects True 允许,False 不允许r = requests.get('http://github.com', allow_redirects=False)print(r.status_code)print(r.history)# 超时设置,timeout 单位秒r = requests.get('http://github.com', timeout=0.5)print(r.status_code)
发表评论
最新留言
很好
[***.229.124.182]2025年03月19日 11时19分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
40. 组合总和 II(dfs、set去重)
2019-03-04
16 最接近的三数之和(排序、双指针)
2019-03-04
python中的all函数
2019-03-04
1137 第 N 个泰波那契数(迭代、记忆性递归)
2019-03-04
279 完全平方数(dfs)
2019-03-04
279 完全平方数(bfs)
2019-03-04
865 具有所有最深结点的最小子树(递归)
2019-03-04
738 单调递增的数字(找出逆序的位置)
2019-03-04
410 分割数组的最大值(二分查找、动态规划)
2019-03-04
875 爱吃香蕉的珂珂(二分查找)
2019-03-04
693 交替位二进制数(位运算)
2019-03-04
450 删除二叉搜索树中的节点(递归删除节点)
2019-03-04
769 最多能完成排序的块(分析)
2019-03-04
542 01 矩阵(单源bfs、多源bfs)
2019-03-04
python测试代码耗时
2019-03-04
桌面图标的自动排列图标
2019-03-04
121 买卖股票的最佳时机(寻找数组中单调递增的序列中最小数字与最大数字--单调栈)
2019-03-04
第十一届蓝桥杯python组第二场省赛-数字三角形
2019-03-04
蓝桥杯四平方和(暴力)
2019-03-04
手机号码(数位dp-dfs)
2019-03-04