Python学习笔记__13.2章 requests
# 这是学习廖雪峰老师python教程的学习笔记
相比于Python内置的urllib模块,使用requests可以更好地处理URL资源。
1、使用requests
1)通过GET访问一个页面
>>> import requests
>>> r = requests.get('https://www.douban.com/') # 豆瓣首页
>>> r.status_code
200
>>> r.text
r.text
'<!DOCTYPE HTML>\n<html>\n<head>\n<meta name="description" content="提供图书、电影、音乐唱片的推荐、评论和...'
2)对于带参数的URL,传入一个dict作为params参数:
>>> r = requests.get('https://www.douban.com/search', params={'q': 'python', 'cat': '1001'})
>>> r.url # 我们实际请求的URL
'https://www.douban.com/search?q=python&cat=1001'
3)requests自动检测编码,可以使用encoding属性查看
>>> r.encoding
'utf-8'
4)无论响应是文本还是二进制内容,我们都可以用content属性获得bytes对象
>>> r.content
b'<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n...'
4)对于特定类型的响应,例如JSON,可以直接获取
>>> r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
>>> r.json()
{'query': {'count': 1, 'created': '2017-11-17T07:14:12Z', …
5)需要传入HTTP Header时,我们传入一个dict作为headers参数:
>>> r = requests.get('https://www.douban.com/', headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'})
>>> r.text
'<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n <title>豆瓣(手机版)</title>...'
6)发送POST请求,只需要把get()方法变成post(),然后传入data参数作为POST请求的数据
>>> r = requests.post('https://accounts.douban.com/login', data={'form_email': 'abc@example.com', 'form_password': '123456'})
把post()方法替换为put(),delete()等,就可以以PUT或DELETE方式请求资源
7)requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据,可以直接传入json参数
params = {'key': 'value'}
r = requests.post(url, json=params) # 内部自动序列化为JSON
8)上传文件需要更复杂的编码格式,但是requests把它简化成files参数
>>> upload_files = {'file': open('report.xls', 'rb')} #注意标示符b,这样获取的bytes长度才是文件的长度
>>> r = requests.post(url, files=upload_files)
9)获取响应头
>>> r.headers
{Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Content-Encoding': 'gzip', ...}
>>> r.headers['Content-Type']
'text/html; charset=utf-8'
10)获取指定的Cookie
>>> cs = {'token': '12345', 'status': 'working'}
>>> r = requests.get(url, cookies=cs)
11)要指定超时,传入以秒为单位的timeout参数
>>> r = requests.get(url, timeout=2.5) # 2.5秒后超时
转载于:https://blog.51cto.com/12758568/2117156
Python学习笔记__13.2章 requests相关推荐
- 【Python学习笔记】第一章基础知识:格式化输出,转义字符,变量类型转换,算术运算符,运算符优先级和赋值运算符,逻辑运算符,世界杯案例题目,条件判断if语句,猜拳游戏与三目运算符
Python学习笔记之[第一章]基础知识 前言: 一.格式化输出 1.基本格式: 2.练习代码: 二.转义字符 1.基本格式: 2.练习代码: 3.输出结果: 三.输入 1.基本格式: 2.练习代码: ...
- Python学习笔记__6.1章 类和实例
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一 ...
- Python学习笔记__1.5章 循环
# 这是学习廖雪峰老师python教程的学习笔记 1.for循环遍历 1.遍历名字 names = ['Michael', 'Bob', 'Tracy'] for name in names: pri ...
- Python学习笔记__4.1章 高阶函数
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...
- Python学习笔记__10.4章 进程VS线程
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们介绍了多进程和多线程,这是实现多任务最常用的两种方式.现在,我们来讨论一下这两种方式的优缺点 要实现多任务,通常我们会设计Master- ...
- Python学习笔记——爬虫原理与Requests数据抓取
目录 为什么要做网络爬虫? 通用爬虫和聚焦爬虫 HTTP和HTTPS 客户端HTTP请求 请求方法 HTTP请求主要分为Get和Post两种方法 常用的请求报头 1. Host (主机和端口号) 2. ...
- Head First Python 学习笔记(第二章:分享你的代码)
共享你的代码 Python提供了一组技术,可以很容易地实现共享,这包括模块和一些发布工具: 模块允许你合力组织代码来实现最优共享. 发布工具允许你向全世界共享你的模块. 函数转换为模块 1.把第一章中 ...
- 深度之眼 - Python学习笔记——第四章 组合数据类型
第四章 组合数据类型 4.1 列表 列表是可变的! 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列 ...
- Python学习笔记 ---第三章
函数 函数是代码的一种抽象 函数 说明 abs 绝对值 max 最大值 hex 转换为16进制 强制数据类型转换 int('123') 123 int(12.35) 12 srt(100) '100' ...
最新文章
- 【实用】Angular中如何实现类似Vuex的全局变量状态变化功能?
- 阿里巴巴持续投入,etcd 正式加入 CNCF
- 基于SSM实现小区物业管理系
- 17. 搭建FTP服务端
- linux 网卡配置不一致,linux环境下,双网卡配置不同网段后,路由问题
- 【数据结构与算法】之深入解析“两数相除”的求解思路与算法示例
- Android之开发者应该收藏的优秀博客和技术网站
- 第一个发现我嫂子有喜的竟然是......
- 2014-10-22 NOIP模拟赛
- Socket套接字实现服务器端连接
- mp.weixin.php,GitHub - temberature/mp-php-sdk: 微信公众平台第三方授权php开发包, weixin mp developer SDK....
- Java 继承——3
- 尝试自动重定向的次数太多_阿里Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全...
- Git------GitHub官网
- 【渝粤题库】陕西师范大学210007 幼儿园音乐教育 作业(高起专)
- android fastboot 最新版,Android fastboot USB 驱动下载2012最新版_支持所有HTC Android平台...
- 数学建模算法与应用(一)线性规划
- “终端服务临时客户端许可证过期”的解决方法
- catia中的螺旋伞齿轮画法,基于CATIA的螺旋锥齿轮参数化建模方法研究
- 英语写作技巧 ——“李靖“
热门文章
- zeptojs-跑马灯效果
- 2003 DHCP升级到2008 DHCP
- 巨潮网怎么下载年报_上海注册公司后如何下载电子营业执照
- 当下常用的webpack版本_细说 webpack系列 1. 为什么要选择 webpack
- 零基础 8 周掌握 Python,成为全能人才!
- 应用随机过程张波商豪_Markov链的应用一:MCMC算法
- Awk 实战详解教程
- redis java 存储图片_Redis 存储图片 [base64/url/path]vs[object]
- 微电子科学与工程要学计算机吗,微电子科学与工程专业适合女生学习吗
- HDU3949(线性基算法模版)