Requests 是用

Beautiful is better than ugly.(美丽优于丑陋)

Explicit is better than implicit.(清楚优于含糊)

Simple is better than complex.(简单优于复杂)

Complex is better than complicated.(复杂优于繁琐)

Readability counts.(重要的是可读性)

requests库常用的7种方法:

requests.requests()

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.patch(“http://httpbin.org/get”) #PATCH请求(提交修改部分数据)

剩下六种方法都是由requests()方法实现的,因此我们也可以说requests()方法是最基本的

在网络上,对服务器数据进行修改是比较困难的,在实际中get()方法是最为常用的方法

1.requests()方法:

requests.requests(method, url, **kwargs)

method:请求方式:GET, PUT,POST,HEAD, PATCH, delete, OPTIONS7种方式

url:网络链接

**kwargs: (13个可选参数)(下面演示这些参数如何使用)

params: 字典或者字节序列,作为参数增加到url中

>>> payload = {'key1': 'value1', 'key2': 'value2'}

>>> r = requests.get("http://httpbin.org/get", params=payload)

通过打印输出该URL,你能看到URL已被正确编码:

>>> print r.url

u'http://httpbin.org/get?key2=value2&key1=value1'

json: JSON格式的数据,作为requests的内容

>>> import requests

>>> r = requests.get('https://github.com/timeline.json')

>>> r.json()

[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

headers: 字典,HTTP定制头

data: 是第二个控制参数,向服务器提交数据

import requests

import json

data = {'some': 'data'}

headers = {'content-type': 'application/json',

'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}

r = requests.post('https://api.github.com/some/endpoint', data=data, headers=headers)

print(r.text)

cookies: 字典或CookieJar, Requests中的cookie

如果某个响应中包含一些Cookie,你可以快速访问它们:

import requests

r = requests.get('http://www.google.com.hk/')

print(r.cookies['NID'])

print(tuple(r.cookies))

要想发送你的cookies到服务器,可以使用 cookies 参数:

import requests

url = 'http://httpbin.org/cookies'

cookies = {'testCookies_1': 'Hello_Python3', 'testCookies_2': 'Hello_Requests'}

# 在Cookie Version 0中规定空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@,冒号,分号等特殊符号都不能作为Cookie的内容。

r = requests.get(url, cookies=cookies)

print(r.json())

auth: 元组,支持HTTP认证功能

import requests

from requests.auth import HTTPBasicAuth

r = requests.get('https://httpbin.org/hidden-basic-auth/user/passwd', auth=HTTPBasicAuth('user', 'passwd'))

# r = requests.get('https://httpbin.org/hidden-basic-auth/user/passwd', auth=('user', 'passwd')) # 简写

print(r.json())

files: 字典类型,传输文件

import requests

url = 'http://127.0.0.1:5000/upload'

files = {'file': open('/home/lyb/sjzl.mpg', 'rb')}

#files = {'file': ('report.jpg', open('/home/lyb/sjzl.mpg', 'rb'))} #显式的设置文件名

r = requests.post(url, files=files)

print(r.text)

timeout: 设置的超时时间,秒为单位

>>> requests.get('http://github.com', timeout=0.001)

Traceback (most recent call last):

File "", line 1, in

requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)

proxies: 字典类型,设定访问代理服务器,可以增加登录认证

import requests

proxies = {

"http": "http://10.10.1.10:3128",

"https": "http://10.10.1.10:1080",

}

requests.get("http://www.zhidaow.com", proxies=proxies)

如果代理需要账户和密码,则需这样:

proxies = {

"http": "http://user:pass@10.10.1.10:3128/",

}

allow_redirects: True/False,默认为True, 重定向开关

stream: True/False,默认为True,获取内容立即下载开关

verity: True/False,默认为True, 认证SSL证书

cert: 本地SSL证书路径

2.get()方法:

requests.get(url, params=None, **kwargs)

url: 拟获取页面的url链接

params: url中的额外参数,字典或字节流,可选择

**kwargs:12个控制访问的参数,就是requests中除params参数

3.head()方法

requests.head(url, **kwargs)

url: 拟获取页面的url链接

**kwargs:13个控制访问的参数

4.post()方法

requests.post(url,  data=None, json=None, **kwargs)

url: 拟获取页面的url链接

data: 字典,字节序列或文件,Requests的内容

json: JSON格式的数据,Requests的内容

**kwargs:11个控制访问的参数

5.put()方法

requests.put(url,  data=None, **kwargs)

url: 拟获取页面的url链接

data: 字典,字节序列或文件,Requests的内容

**kwargs:12个控制访问的参数

6.patch()方法

requests.patch(url,  data=None, **kwargs)

url: 拟获取页面的url链接

data: 字典,字节序列或文件,Requests的内容

**kwargs:12个控制访问的参数

7.delete()方法

requests.delete(url, **kwargs)

url: 拟删除页面的url链接

**kwargs:13个控制访问的参数

Response对象

使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,

常用属性:

r.status_code #HTTP响应状态码,200表示响应成功,404表示失败

r.content #HTTP响应内容的二进制形式

r.text #字符串方式的响应体,

r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

(要注意区分r.headers,与前面的headers参数字段,前者只是Response对象的一个属性,后者是传递的参数)

r.encoding#从HTTP头header中提取响应内容的编码方式(这个编码方式不一定存在)

r.apparent_encoding#从内容中分析出响应内容的编码方式(这个编码方式是绝对正确的)

r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取

在这里有一个比较特殊的属性: r.request.headers可以查看HTTP请求的头部,注意区分r.headers

常用方法:

r.raise_for_status() #失败请求(非200响应)抛出requests.HTTPError异常

Requests库的异常:

requests.ConnectionError: 网络连接错误异常,如DNS查询失败,拒接连接等

requests.HTTPError: HTTP错误异常

requests.URLRequired: URL缺失异常

requests.TooManyRedirects: 超过最大重定向次数,产生的重定向异常

requests.ConnectTimeout: 远程连接服务器异常超时

requests.Timeout: 请求URL超时,产生的超时异常

python的requests库介绍_Requests库介绍相关推荐

  1. python的requests模块功能_requests模块的入门使用

    学习目标: 了解 requests模块的介绍 掌握 requests的基本使用 掌握 response常见的属性 掌握 requests.text和content的区别 掌握 解决网页的解码问题 掌握 ...

  2. Linux环境配置Python库及常用库介绍

    Linux环境配置Python库 Python 的标准库包括了很多的模块, 从 Python 语言自身特定的类型和声明, 到一些只用于少数程序的不著名的模块.在 Linux环境 运行Python 经常 ...

  3. [python知识] 爬虫知识之BeautifulSoup库安装及简单介绍

    一. 前言         在前面的几篇文章中我介绍了如何通过Python分析源代码来爬取博客.维基百科InfoBox和图片,其文章链接如下:         [python学习] 简单爬取维基百科程 ...

  4. Python 爬虫---(3)Urllib库使用介绍

    1.Urllib库使用详解 Urllib是python内置的HTTP请求库 包括以下模块 urllib.request 请求模块 urllib.error 异常处理模块 urllib.parse ur ...

  5. Requests库常用方法及参数介绍

    Requests库常用方法及参数介绍 Requests 库中定义了七个常用的请求方法,这些方法各自有着不同的作用,在这些请求方法中 requests.get() 与 requests.post() 方 ...

  6. Python之数据挖掘实践--scikit learn库介绍和下载、实践、采坑

    文章目录 前言 A sklearn库是什么? A1 依赖库介绍 1.Numpy库 2.Scipy库 3. matplotlib A2 下载安装 B 实践过程 B1 主成分分析(PCA) B2 实现Km ...

  7. python画兔子代码_【后端开发】如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  8. 用python画小兔子_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  9. python的 numpy库学习总结和介绍(超详细)模块

    目录 前言 numpy是什么? 一.创建数据容器 1.np.array(),通过传递一个列表,元祖来创建 2.np.zeros(),np.ones(),np.empty(),np.full(),传递对 ...

最新文章

  1. 创建Cocoapods私有库
  2. 20145129 课程总结
  3. 从Google Maglev说起,如何造一个牛逼的负载均衡?
  4. java 检查打印机状态_爱普生打印机常见故障有哪些 爱普生打印机故障解决方法【详解】...
  5. springboot 上传异常捕获_Spring Boot 全局异常处理(下)
  6. DataNode的流式接口
  7. 奥的斯服务器显示chc,奥的斯服务器查看故障清除故障
  8. linux如何重置网络,Ubuntu 重新设置网络
  9. 吴恩达神经网络和深度学习-学习笔记-36-网络中的网络以及1×1卷积
  10. 常用的锂电池充电芯片
  11. 南信大学生怎样看知网,看外文文献
  12. 停止mysql服务的运行_启动和停止MySQL服务
  13. 各种域名都代表什么意思?
  14. java语法 chm_使用java代码打开chm格式的帮助文档
  15. 2018时间的朋友罗振宇跨年演讲主题是什么?
  16. 千万级用户ms级抽奖N名设计方案
  17. python 脚本分析dns日志计算前几位的请求数域名
  18. 天梯赛-L2-027 名人堂与代金券(25)(多条件排序)
  19. 什么是两化融合贯标?对企业有什么好处?
  20. 考研复试——数据结构

热门文章

  1. Python字典结构
  2. QQ拼音输入法HD for iPAD
  3. KB MB GB TB PB ZB或是(K M G T P Z)之间的转化
  4. 碧玉刀服务器维护,有关碧玉刀任务的
  5. 科大星云诗社动态20210128
  6. vue+element 创建Cron表达式生成器组件 [带最近五次执行时间]
  7. 数据结构 - 串的模式匹配
  8. java十进制小数转二进制方法(Java)StringBuilder
  9. Qt中设置删除提示框
  10. 前端总结、01.JavaScript概述