文档章节

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
广州
私信 提问
加载中

评论(0)

路飞学成-Python爬虫实战密训-第1章

1,本节学习体会、心得 :   经过几个月的努力学完了django。因此才选择了这个爬虫课程。经过第一章的学习,再次体会到了python的强大。之前一直为正则发愁,每次都要修改好几次,才能匹配...

osc_nyhmdnf9
2018/07/05
2
0
学习笔记之requests篇

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

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

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

人型电脑天使心
2015/09/18
314
0
路飞学院-Python爬虫实战密训班-第1章

学习笔记: 通过本章的学习,学习到了requests和BeautifulSoup模块的安装及使用方法。以及爬取给类网站的方法和知识点。 1、requests和BeautifulSoup 安装 pip install requests...... 2、使...

osc_8b50jzrj
2018/07/04
1
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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 头发和不要头发,你总要选一个

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《雾 缀じた街 ふたつのかげ》- Porkkana 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
41
0
一道 算法题 引发的 ‘xx现场’

请 熟悉的语言 去 验证 在输入框中输入的是否是一个正确的网址 初次读题萌新有点 不知所措的样子一查 MDN 吓一跳 ----- 一个不怎么熟悉的方法跳出眼边URL() 构造函数返回一个新创建的 ...

酒窝yun过去了
今天
19
0
如何检查jQuery中是否已选中复选框? - How to check whether a checkbox is checked in jQuery?

问题: I need to check the checked property of a checkbox and perform an action based on the checked property using jQuery. 我需要检查复选框的checked属性,并使用jQuery根据check......

技术盛宴
今天
12
0
mongoose 使用

http://www.mongoosejs.net/ 编写MongoDB验证,转换和业务逻辑是非常麻烦的. 所以Mongoose应运而生了. const mongoose = require('mongoose');mongoose.connect('mongodb://localhost/te......

东东笔记
今天
30
0
微服务

什么是微服务? 使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且他们可以通过自动化的方式部署。 微服务的特征 单一职责 轻量级通信 ...

鸿FW
今天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部