在python中对Requests的理解

news/2024/9/23 7:21:12/

离上次写文章已经有小半个月了,但是:
没有动态的日子里,都在努力生活❤️;发表动态的日子里,都在热爱生活。🌹

目录

  • 一、python集成工具的分类:
    • 1.解释Requests
    • 2. Requests
    • 3. Response对象的属性
    • 4. 理解Requests库的异常:
    • 5. 框架

python_5">一、python集成工具的分类:

python的集成工具:

文本工具类IDE集成工具类IDE
IDLEPycharm
Notepad++Wing
Sublime TextPyDev & Eclipse
Vim & EmacsVisual Studio
AtomAnaconda & Spyder
Komodo EditCanopy

推荐使用的是:Sublime TextWingPycharm Anaconda (科学计算机和数据分析的专题)

学习框架:
框架

1.解释Requests

Requests 是一个非常流行的 Python 库,用于发送 HTTP 请求。它简化了与 web 服务进行交互的过程,使得开发者能够轻松地获取网页内容、与其他 API 通信或执行任何需要网络请求的任务。Requests 库以其简洁的 API 和广泛的功能集而受到青睐,这些特点使得进行网络请求变得直观且高效。

  1. 主要特点包括:
  • 易于使用:提供简单的函数接口,如 get()post() 等,来发送不同类型的 HTTP 请求。
  • 自动处理重定向:遇到 HTTP 重定向时自动跟随跳转。
  • 请求与响应对象:对每个请求和响应都提供了对象,可以方便地访问状态码、 headers、cookies、内容等信息。
  • 会话管理:支持通过 Session 对象来保持会话,这样可以跨请求保持 cookies,模拟登录状态。
  • 内容编码处理:自动处理 gzip 和 deflate 压缩的内容。
  • JSON 数据处理:直接将 JSON 格式的响应体解码为 Python 字典。
  • 支持文件上传和下载:可以方便地上传文件或下载网络资源。
  1. 举例说明
    假设我们要使用 Requests 库来获取一个网页的 HTML 内容,比如获取 GitHub 首页的源代码:
python">import requests# 发送 GET 请求到指定的 URL
response = requests.get('https://github.com')# 检查请求是否成功(HTTP 状态码为 200 表示成功)
if response.status_code == 200:# 打印网页的 HTML 内容print(response.text)
else:print(f"请求失败,状态码:{response.status_code}")

在这个例子中,我们首先导入了 requests 库,然后使用 get() 函数向 ‘https://github.com’ 发送了一个 GET 请求。接着,我们检查了响应的状态码,如果是 200,则表示请求成功,进而打印出网页的 HTML 源代码。如果状态码不是 200,就打印出失败的状态码。这就是使用 Requests 库进行网络请求的一个基本示例。

2. Requests

  • 自动爬取HTML页面,自动网络请求提交

  • 最常用的是get请求方法

方法说明
requests.request()构造一个请求,支撑以下各方法的基础方法
requests.get()获取html网页的主要方法,对应于http的get
requests.head()获取html网页头信息的方法,对应于http的head
requests.post()向html网页提交post请求的方法,对应于http的post
requests.put()向html网页提交put请求的方法,对应于http的put
requests.patch()向html网页提交局部修改请求,对应于http的patch
requests.delete()向html页面提交删除请求,对应http的delete

3. Response对象的属性

  • 请求:获取html网页
属性说明
r.statu_codehttp请求的返回状态,200表示连接成功,其他表示失败或者另有原因
r.texthttp响应内容的字符串形式,即,url对应的页面内容
r.encoding从http header中猜测的响应内容编码方式
r.apparent_encoding从内容中分析出的响应内容编码方式(备选编码方式)
r.contenthttp响应内容的二进制形式

4. 理解Requests库的异常:

  • 网络连接有风险

  • 异常处理很重要

异常说明
requests.ConnectionError网络连接错位于异常,如DNS查询失败,拒绝连接等
requests.HTTPErrorhttp错误异常
requests.URLRequiredurl缺失异常
requests.TooManyRedirects超过最大重定向次数,产生重定向异常
requests.ConnectTimeout连接远程服务器超时异常
requests.Timeout请求URL超时,产生超时异常
r.raise_for_status() 【response】如果不是200,产生异常requests.HTTPError

5. 框架

import requestsdef getHTMLText(url):try:r=requests.get(url,timeout=30)# 如果状态不是200,引发HTTPError异常r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept:return "产生异常"if __name__ == "__mian__":url="http://www.baidu.com"print(getHTMLText(url))

在此有话:

在这最近的生活中,对生活的迷茫,对未来前进的方向怀疑,对现在的状态感到有愧。想明白了:”时间是最宝贵的“。在此,我不断地浪费真的感到不值得。就像这首《无名的人》一样,经历的生活的沧桑,经历了时间的成长。在每份艰苦中脱出。我想在在未来,我会努力往自己想要的前进。愿大家和我一样,快速找到自己的目标,向未来前进。谢谢大家!

在这里插入图片描述


http://www.ppmy.cn/news/1458036.html

相关文章

用户至上!探索7种常用的用户体验研究方法

用户体验研究是产品开放过程中的重要组成部分,优秀的产品设计与高质量的用户体验是不可分割的。对于产品开发,选择合适的用户体验研究方法在很大程度上决定了产品的使用效果。本文全面阐述了用户体验研究、用户体验研究的重要性和用户体验研究方法&#…

Go实现树莓派控制舵机

公式说明 毫秒(ms)是时间的单位,赫兹(Hz)是频率的单位,而DutyMax通常是一个PWM(脉冲宽度调制)信号中表示最大占空比的值。以下是它们之间的关系和一些相关公式: 频率&…

数仓技术选型

数仓技术选型 考虑因素 考虑因素 数据量大小,业务需求,行业内经验,技术成熟度,开发维护成本,学习成本,总成本预算。 数据存储:MySQl,HDFS,HBase,Redis&#…

可视化:智慧能源解决方案,降本增效,运筹帷幄。

智慧能源可视化解决方案是一种利用先进的技术和工具,将能源数据以直观、可视的方式呈现出来,帮助企业更好地管理能源使用,降低成本,提高效率的解决方案。 以下是一些智慧能源可视化解决方案可以帮助企业降本增效、智连未来的方式&…

# 从浅入深 学习 SpringCloud 微服务架构(八)Sentinel(1)

从浅入深 学习 SpringCloud 微服务架构(八)Sentinel(1) 一、sentinel:概述 1、前言 – 服务熔断 Hystrix 的替换方案。 1)2018年底 Netflix 官方宣布 Hystrix 已经足够稳定,不再积极开发 Hys…

【数据分享】2006—2022年我国城市级别的市政设施水平相关指标(免费获取)

市政公用设施水平,作为衡量一座城市基础设施建设情况的核心指标之一,其完善程度、运行效率以及服务质量,不仅直接关乎城市的日常运转与居民生活质量,更是评估城市综合竞争力、宜居性以及可持续发展能力的关键要素。 我们发现在《…

Python | Leetcode Python题解之第61题旋转链表

题目: 题解: class Solution:def rotateRight(self, head: ListNode, k: int) -> ListNode:if k 0 or not head or not head.next:return headn 1cur headwhile cur.next:cur cur.nextn 1if (add : n - k % n) n:return headcur.next headwhi…

Mysql 基础 order by ,as ,limit,case,asc、desc

order by 、as 、limit 、asc(ascending 正序 默认) desc(descending 倒序) SELECT 学号, 姓名, 成绩, CASEWHEN 成绩 > 90 THEN 优秀WHEN 成绩 > 80 THEN 良好WHEN 成绩 > 60 THEN 及格ELSE 不及格 END as 成绩级别 FRO…