文档章节

requests模块笔记

xuzhzz
 xuzhzz
发布于 2017/09/11 21:53
字数 541
阅读 1
收藏 0

背景

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。

发送请求传递参数

# 同一的请求接口样式
import requests
import json

requests.get(‘https://github.com/timeline.json’) #GET请求
requests.post(“http://httpbin.org/post”) #POST请求
requests.put(“http://httpbin.org/put”) #PUT请求
requests.delete(“http://httpbin.org/delete”) #DELETE请求
requests.head(“http://httpbin.org/get”) #HEAD请求
requests.options(“http://httpbin.org/get”) #OPTIONS请求



# 传递参数 url headers params data timeout cookies proxies
# GET
requests.get(url, headers= ,params= ,)
requests.post(url, headers=, data=, )

# POST发送JSON数据 json
r = requests.post('https://api.github.com/some/endpoint', data=json.dumps({'some': 'data'}))
# 或者
r = requests.post('https://api.github.com/some/endpoint', json={'some': 'data'})
r.json

# post上传文件 files=
files = {'file': open(path, 'rb')}
r = requests.post(url, files=files)

响应

r.status_code #响应状态码
r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取
r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
# 特殊方法
r.json() #Requests中内置的JSON解码器
r.raise_for_status() #失败请求(非200响应)抛出异常

重定向 请求历史

默认情况下,除了 HEAD, Requests 会自动处理所有重定向。 可以使用响应对象的 history 方法来追踪重定向。 Response.history 是一个 Response 对象的列表,为了完成请求而创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。

r = requests.get('http://github.com')

r.url # 'https://github.com'

r.history # [<Response [301]>]

## 禁止重定向
r = requests.head('http://github.com', allow_redirects=True)

超时和异常

timeout=

所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException:ConnectionError、HTTPError、Timeout、TooManyRedirects。 如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。 若请求超时,则抛出一个 Timeout 异常。 若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。

查看更多高级用法

requests高级用法

© 著作权归作者所有

共有 人打赏支持
xuzhzz
粉丝 0
博文 6
码字总数 18385
作品 0
广州
私信 提问
学习笔记之requests篇

我们用python写爬虫的时候经常会用的requests模块,同样还有urllib模块,urllib在上一篇中已经介绍过了,这里介绍一下requests模块 环境:windows 模块:requests Request是用Python语音编写...

董小洋
2017/09/01
0
0
Python网页爬虫学习

我总结的了ython网页爬虫的笔记,使用BeautifulSoup和requests两个模块实现,能够爬取百度贴吧帖子图片的功能。里面还包括的了两个模块具体的使用讲解,还包含了详细的注释。有问题请在GIT留...

人型电脑天使心
2015/09/18
280
0
Requests 与 BeautifulSoup 模块

一、Requests库 参考 :http://www.python-requests.org/en/master/user/quickstart/#make-a-request Requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到...

meteor_hy
2017/11/14
0
0
python极客学习笔记

正则 import res = '12abc33arr' print re.match(r'2.', s) 从字符开头匹配,匹配不到返回None print re.search(r'2.', s) 匹配到内容就取消接下来的字符匹配,到字符结束没匹配到就返回Non...

stone_
2016/03/29
77
0
学习笔记之爬虫篇

网络爬虫(又被称为网页蜘蛛,网络机器人,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者...

董小洋
2017/08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
12
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
17
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
23
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
12
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部