【Python】【有趣的模块】【requests】【二】快速上手
【一】参数及结果
【二】响应内容
>>> r = requests.get('https://github.com/timeline.json')
>>> print(r.content)
b'{"message":"Hello ......"}'
>>> print(r.encoding)
utf-8
>>> print(r.text)
{"message":"Hello....."}
【备注】如果改变了编码,每当方位r.text,Request都将会使用r.encoding的新值。你可能希望在使用特殊逻辑计算出文本的编码的情况下来修改编码。比如HTTP和XML自身可以指定编码。这样的话,应使用r.content来找到编码,然后设置r.encoding为响应的编码。
在需要的情况下,Requests也可以使用定制的编码。如果你创建了自己的编码,并使用codecs模块进行注册,就可以轻松使用这个解码器名称作为r.encoding的值,然后由Requests来为你处理编码。
【三】JSON响应内容
Requests中也有个内置的JSON解码器,助你处理JSON数据
>>> r = requests.get('https://github.com/timeline.json')
>>> r.json()
{'message':'Hello......'}
【备注】成功调用r.json()并不意味着响应的成功。有的服务器会在失败的响应中包含一个json对象。所以,要检查请求是否成功,用r.status_code来检查
>>> print(r.status_code)
410
【备注】被请求的资源在服务器上已经不可用,而且无任何的转发地址 【四】原始响应内容
>>> r = requests.get('https://gitbub.com/timeline.json',stream=True)
>>> r.raw
<urllib3.response.HTTPResponse object at 0x0000000003590BA8>
>>> r.raw.read(10)
b''
【备注】这是我自己运行的结果,官方的结果为
'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'
with open(filename,'wb') as fb:
for chunk in r.iter_content(chunk_size=5):
fb.write(chunk)
【结果】该文件内容同r.text
【备注】一般情况下,应用上方的模式将文本流保存到文件,使用Response.iter_content将会处理大量你直接使用Response.raw不得不处理的。当流下载时,上方是优先推荐的获取内容方式。
【五】定制请求头
这一块我不太熟悉,详见此篇随笔的引用地址
【Python】【有趣的模块】【requests】【二】快速上手的更多相关文章
- Python爬虫---requests库快速上手
一.requests库简介 requests是Python的一个HTTP相关的库 requests安装: pip install requests 二.GET请求 import requests # ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- Python模块-requests(二)
会话对象 会话对象能够跨请求保持某些参数. 它也会在同一个 Session 实例发出的所有请求之间保持 cookie, 期间使用 urllib3 的 connection pooling 功能. 所以 ...
- Python中第三方模块requests解析
一.简述 Requests HTTP Library 二.模块框架 ''' __version__ _internal_utils adapters api auth certs compat coo ...
- Python使用QRCode模块生成二维码
QRCode官网https://pypi.python.org/pypi/qrcode/5.1 简介python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode ...
- Python的subprocess模块(二)
原文:http://blog.chinaunix.net/uid-26000296-id-4461522.html 一.subprocess 模块简介 subprocess最早是在2.4版本中引入的. ...
- Python之常用模块(二)
shelve xml处理 configparser hashlib logging shelve模块 shelve是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持 ...
- [b0043] python 归纳 (二八)_python测试使用快速上手
参考 Python必会的单元测试框架 —— unittest # -*- coding: utf-8 -*- """ 测试代码组织,整理( 非可执行) "&qu ...
- python的requests快速上手、高级用法和身份认证
https://blog.csdn.net/qq_25134989/article/details/78800209 快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其 ...
- Python requests快速上手
Python requests快速上手 这里参考官方文档,在ide中写了一遍,加深一下印象,定义的函数只是为了方便区分不同的请求方式 #-*-coding:utf-8-*- # Time:2017/1 ...
随机推荐
- UVA 11100 The Trip, 2007 (贪心)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- 一起学习在 Ubuntu 上授予和移除 sudo 权限
如你所知,用户可以在 Ubuntu 系统上使用 sudo 权限执行任何管理任务.在 Linux 机器上创建新用户时,他们无法执行任何管理任务,直到你将其加入 sudo 组的成员.在这个简短的教程中,我 ...
- Java五大框架
2017-6-13 Lifusen 此文章仅代表个人观点,如有问题提出请联系Q:570429601 1.Hibernate (开放源代码的对象关系映射框架) Hibernate是一个开放源代码的对象关 ...
- OpenGL: 实现立体显示
https://blog.csdn.net/augusdi/article/details/19922295 立体显示原理:设没有立体显示的模型视图矩阵ModelView为Mv,投影矩阵为Mp,则.物 ...
- Tencent QQ现在就是一个十八层地狱下面的大恶魔-删除右键里的"通过QQ发送到"
都是流氓软件, 有人推荐装什么管家什么助手来清除, 那就是请走一个流氓又引进另外一个流氓. 下面的注册表项直接手工删除 32位系统: windows Registry Editor Version 5 ...
- linux装sqlite3
下载sqlite3源码包 tar xvfz sqlite-src-3.3.5 cd sqlite-3.3.5 ./configure –no-tcl make python继续一次. apt inst ...
- SQL介绍
SQL,即structured query language,结构化查询语言,是一种对关系型数据库中的数据进行管理和操作的语言方法,SQL包括6个部分 DQL:数据查询语言,最常用的为select,其 ...
- golang BDD testcase framework.
BDD What is Behaviour Driven Development and why should I care? Behaviour Driven Development (BDD) i ...
- opencv学习之路(11)、图像几何变换
一.图像缩放 #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat src=imread("E:// ...
- opencv学习之路(9)、对比度亮度调整与通道分离
一.对比度亮度调整 #include<opencv2/opencv.hpp> using namespace cv; #define WIN_NAME "输出图像" M ...