文档章节

requests模块笔记

xuzhzz
 xuzhzz
发布于 2017/09/11 21:53
字数 541
阅读 0
收藏 0
点赞 0
评论 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

Python网页爬虫学习

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

人型电脑天使心 ⋅ 2015/09/18 ⋅ 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

python极客学习笔记

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

stone_ ⋅ 2016/03/29 ⋅ 0

学习笔记之爬虫篇

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

董小洋 ⋅ 2017/08/22 ⋅ 0

我的开源 GitBook: Python 之旅

在学习和使用 Python 的过程中,我作了不少笔记,并对一些笔记进行了加工和完善,发表在博客上。随着笔记的增加,我就萌生了写一本书的想法,希望能比较系统地总结相关知识,巩固自己的知识体...

funhacks ⋅ 2017/01/03 ⋅ 0

Python爬虫实战-抓取《盗墓笔记》所有章节及链接

image.png 本次以一个盗墓笔记的小说阅读网(http://seputu.com)为例,抓取盗墓笔记的标题、章节名和链接,如下图 前提: 这是一个静态网站,标题、章节都不是由JavaScript动态加载的,无代...

爱吃西瓜的番茄酱 ⋅ 2017/11/06 ⋅ 0

Python 快速入门

学习 Python 的由来 第一次接触 Python 时,是在刚毕业不久,那时公司在做一个网盘客户端,需要调研一些 GUI 框架。由于当时 Python 很火(当然,现在也一样),便尝试了一下 PyQt(Python ...

u011012932 ⋅ 2017/07/07 ⋅ 0

python资料全集

python: 微信公众号开发小记——2.80端口上的服务 python: 微信公众号开发小记——3.接入三方登录 使用python编写一个壁纸网站的简单爬虫 python: python List 用法 Python 中各个时间复杂度...

d_watson ⋅ 2016/04/15 ⋅ 0

jboss7-Undertow web子模块配置

1、需要启用模块 <extension module="org.wildfly.extension.undertow"/> 2、默认配置如下 <subsystem xmlns="urn:jboss:domain:undertow:1.0"> 3、配置缓存,静态文件会被缓存,一般情况默认......

fir01 ⋅ 2015/11/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 58分钟前 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部