• 【21天Python进阶学习挑战赛】[day15]requests库大总结



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

    学习日记

    学习知识点

    requests库大总结:100天精通Python(爬虫篇)——第44天:requests库大总结_无 羡ღ的博客-CSDN博客_gv网址

    0、requests库说明

    主要学习requests的http模块,该模块主要用于发送请求获取响应。有很多的替代模块,比如说urlib模块, 但是在工作中用的最多的还是requests模块,requests的代码简洁易懂,相对于臃肿的urlib模块,使用requests编写的爬虫代码将会更少, 而且实现某功能将会简单。

    1、安装

    输入对应的pip命令:pip install requests

    2、常用属性或方法

    方法/属性                                            说明
    response = requests.get(url)       发送请求获取的响应对象(最常用)
    response = requests.post(url)     发送请求获取的响应对象
    response.url                                响应的url;有时候响应的ur1和请求的urI并不一致
    response.status_ code                响应状态码,如:200,404
    response.request.headers          响应对应的请求头
    response. headers                      响应头
    response.request.cookies           响应对应请求的cookie; 返回cookieJar类型
    response.cookies                        响应的cookie (经过了set- cookie动作; 返回cookieJar类型)
    response.json()                           自动将json字符串类型的响应内容转换为python对象 (dict or list)
    response.text                              返回响应的内容,str类型
    response.content                        返回响应的内容, bytes类型

    • 通过requests向百度首页发送请求,获取该页面的源码

    1. import requests
    2. # 目标网址
    3. url = "http://www.baidu.com/"
    4. # 发送请求获取响应
    5. response = requests.get(url)
    6. # 查看响应对象的类型
    7. print(type(response))
    8. # 查看响应状态码
    9. print(response.status_code)
    10. # 查看响应内容的类型
    11. print(type(response.text))
    12. # 查看cookies
    13. print(response.cookies)
    14. # 查看响应的内容
    15. print(response.text)
    16. # 输出结果
    17. <class 'requests.models.Response'>
    18. 200
    19. <class 'str'>
    20. 27315 for .baidu.com/>]>
    21. type content=text/html;charset=utf-8>type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css>ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“ #0000cc>
    22. 读  class=cp-feedback>æ„è§å馈 äº¬ICPè¯030173å· 

  • b'\r\n \xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93
    \r\n'
  • 3、response.text和response.content的区别

    类型:str
    解码类型: requests模块自动根据HTTP头部对响应的编码作出有根据的推测,推测的文本编码

    类型:bytes
    解码类型:没有指定,执行挑选

    通过decode来解决中文乱码:

    response.content.decode():默认utf-8
    response.content.decode('GBK')

    常见的编码字符集:

    utf-8
    gbk
    gb2312
    asci
    iso-8859-1

    1. import requests
    2. # 目标网址
    3. url = "http://www.baidu.com/"
    4. # 发送请求获取响应
    5. response = requests.get(url)
    6. # 手动设置编码格式
    7. response.encoding = 'utf8'
    8. # 打印源码的str类型数据
    9. print(response.text)
    10. # response.content是存储的bytes类型的响应数据,进行decode操作
    11. print(response.content.decode('utf-8'))
    12. # 输出结果
    13. type content=text/html;charset=utf-8>type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css>百度一下,你就知道 #0000cc>

      关于百度 About Baidu

      ©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

    14. type content=text/html;charset=utf-8>type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css>百度一下,你就知道 #0000cc>

      关于百度 About Baidu

      ©2017 Baidu 使用百度前必读  意见反馈 京ICP证030173号 

    4、发送带headers参数请求

    requests.get(ur1, headers=headers)
    headers参数接收字典形式的请求头
    请求头字段名作为key,字段对应的值作为value

    1. import requests
    2. # 目标网址
    3. url = "http://www.baidu.com/"
    4. # 构建请求头字典,最重要的就是User-Agent
    5. # 如果需要其他请求头,就在headers字典中加上
    6. headers = {'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'}
    7. # 发送请求获取响应
    8. response = requests.get(url,headers=headers)
    9. print(response.text)

    在这里插入图片描述

    学习遇到的问题

    暂无

    学习的收获

    了解到了python中requests库的使用。

    实操

    暂无

  • 相关阅读:
    2022/9/14(cf·div3)https://codeforces.com/contest/1729
    Stable Diffusion之novel Ai教程,小白必经之路
    MCU简单的前后台软件架构
    Spring之IOC
    [编程题]数据库连接池 - 牛客网题解
    C++ 关键字及标识符命名规则
    关于一个数组的小细节
    【Python】import模块的多种操作
    C#,人工智能,机器人路径规划(Robotics Pathfinding)DStarLite(D* Lite Algorithm)优化算法与C#源程序
    EVPN基本原理
  • 原文地址:https://blog.csdn.net/yxz8102/article/details/126348032