python-requests

  • 安装pip
    • Sudo easy_install pip
  • 安装requests
    • 切换到root用户 sudo -i
    • Pip install requests
  • 引入requests模块 import requests
  • r=Requests.get() requests.post() 请求网页,返回一个响应对象
  • R.text是一个字符串,r.json()返回的是一个列表[]
  • r=requests.get(‘https://api.github.com/events’,stream=True) r.raw通过设置stream为真来获取服务器响应的原始套接字
  • 请求格式r=requests.xxx(url)
  • Post data={}设置传递参数
    • Get Params={}传递参数
    • headers={}设置请求头
    • R.url 请求url
    • R.text 返回的数据,字符串格式
    • r.encoding=‘’设置r.text的编码
    • R.content以二进制形式请求响应体
    • r.json() json 解码解码之后,是一个元组或者字典,失败抛出异常
    • 或者使用json模块下的函数
      • Json.dumps() 对数据进行编码,

python

json

dict

object

list, tuple

array

str

String

int, float, int- & float-derived Enums

Number

TRUE

TRUE

FALSE

FALSE

none

      • Null
      • Json.loads()对数据进行解码,

Json

Python

Object

Dict

Array

List

String

Str

Number int

Int

number (real)

Float

TRUE

TRUE

FALSE

FALSE

Null

None

    • 处理json文件
      • with open(‘data.json’,’w’) as f:
        • Json.dump(data,f)
      • With open(‘data.json’,’r’) as f:
        • Data=json.load(f) 
    • R.raw返回服务器原始套接字响应
  • post
    • 参数data={}/() 也可以是元组列表
    • 通过files 上传文件requests.post(url,file={‘file’:open(‘repoort.xls’,’rb’)})
  • postget都会有响应状态码
    • R.status_code获取状态码,请求成功200 requests.codes.ok
    • 使用r.raise_for_status()来抛出异常
    • requests.get(url,timeout=0.001)超时设定只对连接过程有效,在指定时间没有应答则抛出异常
    • R.headers 查看响应头,返回一个字典类型,可以通过r.headers[‘索引值’]r.headers.get(‘索引值’)获取其中一个元素的值
    • 获取相应中的cookies  r.cookies[‘索引值’]
    • 请求中设置cookies requests.get(url,cookies={‘’:’’,’’:’’})
    • R.history是一个response对象的列表
  • Json.dumps(data)将一个python数据结构转换为json
  • Json.loads(json_str)将一个json数据转换为python数据结构
    • 注意使用前需要引入模块 import json
  • 错误和异常
  • 遇到网络问题,requests会抛出ConnectionError异常
  • 如果http请求了不成功的状态码,r.raise_for_status()会抛出一个HTTPErrror异常
  • 请求超时返回一个timeout异常
  • 请求超过了设定的最大重定向次数会抛出一个toolManyRedirectus异常
  • 所有的异常都继承requests.exceptions.RequestsException

猜你喜欢

转载自blog.csdn.net/benben0729/article/details/80221266