文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下。如果您也碰到了同样的问题,希望本文对您有用。 问题...

程序猿DD
22分钟前
1
0
sql 命令

show variables like '%general%'; show variables like '%log_output%'; show variables like '%quer%'; show global status like '%slow%';...

JavaSon712
29分钟前
0
0
Django修改默认数据库引擎

Django默认数据库引擎为sqlite3,除了sqlite3,还支持postgresql、mysql、oracle 配置如下:其中postgresql_psycopg2为postgresql的适配器。 'django.db.backends.postgresql' 'django.db.bac......

MichaelShu
35分钟前
0
0
动画源码解析

目录介绍 1.Animation和Animator区别 2.Animation运行原理和源码分析 2.1 基本属性介绍 2.2 如何计算动画数据 2.3 什么是动画更新函数 2.4 动画数据如何存储 2.5 Animation的调用 3.Animator...

潇湘剑雨
41分钟前
2
0
Mac OS 最强鼠标改键软件:BetterAndBetter

官网: http://www.better365.cn 话不多说,先上你们最喜欢的软件界面截图。 通用: 触摸板: 鼠标: 键盘: 情景模式: 文本跳窗(自动跳窗): 四角触发: 工具箱: 脚本: 关于: 说下我目...

故国有明
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部