• Python的requests库使用总结


    在这里插入图片描述​ 

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

    学习日记

    目录

    学习日记

    一、requests库基础

    1、requests库概念

    2、requests库安装与导入

    3、常用属性或方法

    二、七个主要使用方法

    1、requests.request(method, url, **kwargs)

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

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

    4、requests.Session

    5、 kwargs 参数表

    6、响应内容

    三、requests库的基本语法

    1、requests库语法的一种类型与六种属性

    四、requests库的get请求 

    五、requests库的post请求

    六、超时参数timeout的使用


    一、requests库基础

    1、requests库概念

        requests库是基于Python开发的HTTP库,它能节省大量的工作,实际上,requests是在urllib的基础上进行了高度的封装,它不仅继承了urllib的所有特性,而且还支持一些其他的特性。其支持许多 HTTP 特性,可以非常方便地进行网页请求、网页分析和处理网页资源,拥有许多强大的功能。

    2、requests库安装与导入

    安装requests库: Windows+r 打开运行控制框,输入 cmd,进入命令行,输入:

    pip install requests
    

     

     导入

    import requests
    

    3、常用属性或方法

     例如查看百度页面源码

    1. import requests#导入requests
    2. url = "http://www.baidu.com/"# 目标网址
    3. response = requests.get(url)# 发送请求
    4. print(type(response))# 查看响应对象的类型
    5. print(response.status_code)# 查看响应状态码
    6. print(type(response.text))# 查看响应内容的类型
    7. print(response.cookies)# 查看cookies
    8. print(response.text)# 查看响应的内容

    二、七个主要使用方法

     

    1、requests.request(method, url, **kwargs)

    method 设置请求方式(get、post、put、head、patch、delete)

    url 设置请求地址

    kwargs 控制访问参数

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

    url 设置请求地址。一般地址中问号后面的可以省略,问号后面的即是请求参数。

    params 设置发送请求时所带的参数,字典或字节流格式,作为额外参数连接到url中(问号后的部分)。

    kwargs 控制访问参数,见 kwargs参数表

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

    url 设置请求地址。

    data 为字典、字节序列或文件对象,作为请求的内容,向服务器提交资源时使用。

    json 为 JSON格式的数据,作为内容向服务器提交。

    kwargs 控制访问参数,见 kwargs参数表

    4、requests.Session

    Session 方法可以实现回话,持续性地发送requests请求,能够跨请求保持cookie。

    5、 kwargs 参数表

     

    6、响应内容

    发送请求后,返回的是一个 response 对象。

     

    三、requests库的基本语法

    1、requests库语法的一种类型与六种属性

    requests库获取的服务器响应是requests.models.Response的类型

    我们用requests库模拟浏览器,向服务器发起一次普通的请求,这次请求只是为了辅助下面的六种属性

    1. import requests
    2. url = 'http://www.baidu.com'
    3. response = requests.get(url = url)

    用requests库时,我们发起请求是通过requests.get()函数进行的,传参是目的网页的url,并且用response变量接受服务器的响应。 

    text属性:字符串形式返回网页源码(由于 此时编码格式是gbk,中文部分可能会乱码。
    1. # text属性:以字符串形式返回网页源码
    2. print(response.text)
    encoding属性:设置相应的编码格式
    1. # 设置相应的编码格式:
    2. response.encoding = 'utf-8'
    3. #这之后的response就不会出现中文乱码现象

    url属性:返回url地址

    1. # 返回url地址
    2. url = response.url

     content属性:返回二进制的数据

    1. #返回二进制的数据
    2. content_binary = response.content

     status_code属性:返回状态码 200是正常

    1. # 返回状态码 200是正常
    2. status_code = response.status_code

    headers属性:返回响应头

    1. #返回响应头
    2. headers = response.headers

    四、requests库的get请求 

    语法格式

    requests.get(ur1, headers=headers)
    
    1. import requests
    2. url = 'https://www.baidu.com/s?'
    3. headers = {
    4. 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
    5. }
    6. data = {
    7. 'wd' : '水岸东方'
    8. }
    9. response = requests.get(url = url,params = data,headers = headers)
    10. response.encoding = 'utf-8'
    11. content = response.text
    12. print(content)

    五、requests库的post请求

    语法格式

    response = requests.post(url, data) # data参数接收一个字典
    
    1. # requests_post请求
    2. import requests
    3. import json
    4. url = 'https://fanyi.baidu.com/sug'
    5. headers = {
    6. 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
    7. }
    8. data = {
    9. 'kw' : 'eye'
    10. }
    11. response = requests.post(url = url,data = data,headers = headers)
    12. content = response.text
    13. obj = json.loads(content.encode('utf-8'))
    14. print(obj)
    15. # url:请求路径
    16. # data:请求参数
    17. # json数据
    18. # kwargs:字典

    六、超时参数timeout的使用

    使用方法

    response = requests.get(ur1, timeout=3)
    
    1. import requests
    2. url = "https://www.baidu.com/"# 目标网址
    3. headers = {
    4. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
    5. }
    6. try:
    7. response = requests.get(url, headers=headers, timeout=10) # 超时设置为10秒
    8. except:
    9. for i in range(4): # 循环去请求网站
    10. response = requests.get(url, headers=headers, timeout=20)
    11. if response.status_code == 200:
    12. break
    13. html_str = response.text

     

  • 相关阅读:
    iOS Swift5 视频播放 能播放各种编码格式的视频的第三方库
    我和谷歌共成长-资深安卓开发的转型之路
    【总线】AXI总线:FPGA设计中的通信骨干
    代码随想录算法训练营19期第58天
    MySQL的DDL操作数据库
    二分归并法将两个数组合并
    程序性能分析
    栈(C语言实现)
    【不三不四的脑洞】记录一次 “街头搭讪” 之对旋转链表算法的感悟
    make riscv.obj on x86: 交叉编译
  • 原文地址:https://blog.csdn.net/m0_63794226/article/details/126329033