Python之Requests库学习笔记

requests库的学习和使用

首先,requests库中拥有以下的几种方法:

import requests
r = requests.get(url)   # GET获取网页
r = requests.post(url, data={key:value})    # POST 发送数据获取返回的数据
r = requests.put(url)   # PUT方式发送数据
r = requests.head(url)  # 获取网页的头部
r = requsets.delete(url)    # 删除一个页面
r = requests.options(url)   # 

1. GET 方法

  1. 传递URL参数 在使用GET方法获得数据的时候可以加入一些查询参数,这些参数紧跟在?后面。例如https://www.baidu.com/s?ie=UTF-8&wd=youtuberequests库可可以使用params关键参数传入数据。数据的格式为字典类型。
data =  {'key1':'value'}
r = requests.get(url, params=data)
  1. 返回内容的一些方法和属性
  2. r.text: 是返回的内容
  3. r.url: 访问的url地址
  4. r.encoding : 返回的是文本编码,同样也可以使用encoding改变文本的编码
  5. r.context: 以字节的方式访问返回内容
  6. r.json(): 内置的编码器,讲json数据转换为字典数据
  7. r.row: 返回原始内容,需要在get请求中设置stream=True
r = requests.get(url, stream=True)
r.raw
r.raw.readd(10)
  1. 定制请求你头部 请求headers头部中可以制定一些内容,主要形式为字典类型。 使用方法:
headers =  {'user-agent': 'my-app/0.0.1'}
r  = requests.get(url, headers=headers)

注意: 所有的headers值必须是stringbytestring或者Unicode类型

2. POST请求

  1. 简单的POST请求 发送一些表单形式的数据,可以使用POST请求, 发送的数据类型为字典数据类型,将数据交给data参数。例子如下:
pyload = {'key1': 'value1', 'key2':'value2'}
r = requests.post(url, data=pyload)
  1. data的数据类型也可以是json或者元组数据类型 例如:
pyload = (('key1', 'value1'), ('key2', 'value2'))
r = requests.post(url, data=pyload)
print(r.text)

json数据类型发送, 可以手动对dict数据进行编码,也可以直接发送,在2.4.2版本中能够自动进行编码:

import json
pyload = {'some':'data'}
# 手动讲数据进行编码,将编码后的数据传入参数 data
r = requests.post(url, data=json.dump(pyload))

# 使用自动编码,将 dict 数据直接传入参数 json
r = requests.post(url, json=pylaod)
  1. 发送文件 使用requests库,同样可以上传文件,首先使用Python以二进制的方式打开文件,然后通过files参数上传:
files = {'file': open('test.txt', 'rb')}
r = requests.post(url, files=files)

响应状态码

当我们使用了 post或者get方法时, 我们可以通过检测状态码判断访问的情况。

r = requests.get(url)
r.status_code   #状态码
  1. 200: 当状态码返回的数值为200的时候,表示获取正常。
  2. 当发送了一个错误的请求的时候,将会返回404,或者其他的错误。
  3. 当我们获得了一个错误的状态码的时候,我们可以使用Response.raise_for_status()抛出异常
  4. 当我们的状态码status_code200的时候,使用raise_for_status()将会返回None

响应头

可以使用r.headers查看获得服务器响应头,以字典的形式返回数据。

  1. 获取响应的Cookie
r = requests.get(url)
r.cookies    # 返回响应的Cookie值
  1. 发送Cookie到服务器,要使用cookies参数:
cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies)

重定向与请求的历史记录

可以使用history方法来追踪重定向。 Response.history是一个Response对象的列表,为了完成请求二创建了这些对象。这些对象是熊最老到最近的请求进行排序的。

r = requests.get(url)
r.url   # 返回访问的地址url
r.status_code     # 返回检测的代码
r.history       # 返回响应的列表

可以禁止重定向, 使用allow_redirdects参数禁止重定向处理:

r = requests.get(url, allow_redirects=False)
r.status_code     # 如果重定向了,返回301
r.history       # 如果发送重定向了,则返回  []

相关文章:

  1. Python的time模块简介
  2. Echarts学习之小飞机游行

提交评论

请先 后进行评论

评论列表

共有0评论