Python爬虫-requests库

requests库【重点】

requests库也是一个网络请求库, 基于urllib和urllib3封装的便捷使用的网络请求库。

2.1 安装环境

1
pip install requests -i https://mirrors.aliyun.com/pypi/simple

2.2 核心的函数

  • requests.request() 所有请求方法的基本方法

    以下是request()方法的参数说明

    • method: str 指定请求方法, GET, POST, PUT, DELETE

    • url: str 请求的资源接口(API),在RESTful规范中即是URI(统一资源标签识符)

    • params: dict , 用于GET请求的查询参数(Query String params);

    • data: dict , 用于POST/PUT/DELETE 请求的表单参数(Form Data)

    • json: dict 用于上传json数据的参数, 封装到body(请求体)中。请求头的Content-Type默认设置为application/json

    • files: dict, 结构 {‘name’: file-like-object | tuple}, 如果是tuple, 则有三种情况:

      • (‘filename’, file-like-object)
      • (‘filename’, file-like-object, content_type)
      • (‘filename’, file-like-object, content_type, custom-headers)

      指定files用于上传文件, 一般使用post请求,默认请求头的Content-Typemultipart/form-data类型。

    • headers/cookies : dict

    • proxies: dict , 设置代理

    • auth: tuple , 用于授权的用户名和口令, 形式(‘username’, ‘pwd’)

  • requests.get() 发起GET请求, 查询数据

    可用参数:

    • url
    • params
    • json
    • headers/cookies/auth
  • requests.post() 发起POST请求, 上传/添加数据

    可用参数:

    • url
    • data/files
    • json
    • headers/cookies/auth
  • requests.put() 发起PUT请求, 修改或更新数据

  • requests.patch() HTTP幂等性的问题,可能会出现重复处理, 不建议使用。用于更新数据

  • requests.delete() 发起DELETE请求,删除数据

2.3 requests.Respose

以上的请求方法返回的对象类型是Response, 对象常用的属性如下:

  • status_code 响应状态码
  • url 请求的url
  • headers : dict 响应的头, 相对于urllib的响应对象的getheaders(),但不包含cookie。
  • cookies: 可迭代的对象,元素是Cookie类对象(name, value, path)
  • text : 响应的文本信息
  • content: 响应的字节数据
  • encoding: 响应数据的编码字符集, 如utf-8, gbk, gb2312
  • json(): 如果响应数据类型为application/json,则将响应的数据进行反序化成python的list或dict对象。
    • 扩展-javascript的序列化和反序列化
      • JSON.stringify(obj) 序列化
      • JSON.parse(text) 反序列化

1.1 requests库

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

    常用的参数

    • params/data/json 上传数据
    • files 上传文件
    • headers/cookies
    • proxies 代理服务器
    • auth 授权
  • requests.get(url, params, **kwargs)

  • requtests.post(url, data, json, **kwargs)

  • requests.put(url, data, json, **kwargs)

  • requests.delete(url, **kwargs)

  • requests.session() - > session对象, 可以调用 s.get()/post()/put()/delete()等方法,多次请求的会话(连接Session)是同一个

    所有的请求返回的对象是requests.Response类的实例, 实例的属性:

  • status_code

  • headers

  • encoding

  • text/content

  • cookies

  • json() 反序列化json文本字符串为python的list或dict的对象

作者

Fahsa

发布于

2020-12-21

更新于

2020-12-25

许可协议

评论