在python中对Requests的理解

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

目录

  • 一、python集成工具的分类:
    • 1.解释Requests
    • 2. Requests
    • 3. Response对象的属性
    • 4. 理解Requests库的异常:
    • 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 首页的源代码:
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 requests

def getHTMLText(url):
    try:
        r=requests.get(url,timeout=30)
        # 如果状态不是200,引发HTTPError异常
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return "产生异常"

if __name__ == "__mian__":
    url="http://www.baidu.com"
    print(getHTMLText(url))

在此有话:

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/602831.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mvc 异步请求、异步连接、异步表单

》》》 利用Jquery ajax 》》》 mvc 异步表单 c# MVC 添加异步 jquery.unobtrusive-ajax.min.js 方法 具–>Nuget程序包管理器–>程序包管理器控制台 在控制台输入:PM>Install-Package Microsoft.jQuery.Unobtrusive.Ajax –version 3.0.0 回车执行即可在…

5分钟了解Flutter线程Isolate的运用以及Isolate到底是怎样执行的

5分钟了解Flutter线程Isolate的运用以及Isolate到底是什么 Isolate在dart是什么flutter线程内存隔离Isolate的使用第一种,无参数使用Isolate.run 第二种,有参数使用compute:使用Isolate.spawn Isolate与外面线程通讯Isolate以文件形式加载到内存运行 Iso…

led显示屏用什么胶水封装比较好?

led显示屏用什么胶水封装比较好? LED显示屏通常使用特定的胶水进行封装,以确保其稳定性和耐用性。常见的用于LED显示屏封装的胶水类型包括有机硅灌封胶、环氧树脂灌封胶等。 有机硅灌封胶具有优异的耐高温、防水、绝缘和密封性能,非常适合用…

使用MATLAB/Simulink点亮STM32开发板LED灯

使用MATLAB/Simulink点亮STM32开发板LED灯-笔记 一、STM32CubeMX新建工程二、Simulink 新建工程三、MDK导入生成的代码 一、STM32CubeMX新建工程 1. 打开 STM32CubeMX 软件,点击“新建工程”,选择中对应的型号 2. RCC 设置,选择 HSE(外部高…

python菜鸟级安装手册-上篇

python安装教程 电脑-右键-属性,确认系统类型和版本号,比如本案例系统是64位 win10 点击python官网,进行下载 适用于 Windows 的 Python 版本 |Python.org 选择第一个安装程序64位即可满足需要, 嵌入式程序包是压缩包版本&…

MySQL中的ON DUPLICATE KEY UPDATE和REPLACE

在 MySQL 中,ON DUPLICATE KEY UPDATE 和 REPLACE 语句都可以用来处理插入数据时主键或唯一键冲突的情况,但它们在处理冲突的方式上有所不同。它们有以下区别: 行为方式: ON DUPLICATE KEY UPDATE:当插入的数据行存在冲…

【竞技宝】欧冠:多特淘汰大巴黎进决赛,姆巴佩迷失

多特蒙德在本赛季欧冠半决赛第二回合较量中,跟大巴黎队狭路相逢。赛前,大部分球迷和媒体都看好坐拥姆巴佩的大巴黎队,可以靠着主场作战的优势,逆转多特蒙德晋级欧冠决赛。大巴黎队主场作战确实创造出不少得分机会,只可惜球队运气有些差,射门都打在了多特蒙德横梁上。反观多特蒙…

双翻斗雨量计学习

双翻斗雨量计用户手册(脉冲型) 本仪器由雨量计壳体、承雨口、漏斗、翻斗支撑、上漏斗雨量调节支架、上漏斗、汇集漏斗、计数翻斗雨量调节支架、计数翻斗、干簧管安装架、轴承螺钉、出水漏斗、腿部支架、干簧管、水平泡、调节支撑板、控制盒、调平装置、接…

IaC实战指南:DevOps的自动化基石

基础设施即代码(Infrastructure as Code,IaC)是指利用脚本、配置或编程语言创建和维护基础设施的一组实践和流程。通过IaC,我们可以轻松测试各个组件、实现所需的功能并在最小化停机时间的前提下进行扩展。更值得一提的是&#xf…

算法基础01一快速排序,归并排序,二分

一.排序 1.快速 排序 基于分治 确定分界点 左 右 中间 随机划分区间 左半边<x >x在右半边递归处理左右两端 #include<iostream>using namespace std;const int N 1e6 10;int n; int q[N]; void quick_sort(int q[],int l,int r) {if(l>r)return;//边界&…

k8s 资源文件参数介绍

Kubernetes资源文件yaml参数介绍 yaml 介绍 yaml 是一个类似 XML、JSON 的标记性语言。它强调以数据为中心&#xff0c;并不是以标识语言为重点例如 SpringBoot 的配置文件 application.yml 也是一个 yaml 格式的文件 语法格式 通过缩进表示层级关系不能使用tab进行缩进&am…

怎么快速分享视频文件?用二维码看视频的方法

怎样不通过传输下载分享视频内容呢&#xff1f;以前分享视频内容&#xff0c;大多会通过微信、QQ、邮箱、网盘等形式来传递。但是这种方式需要下载后才可以观看&#xff0c;不仅占用手机内存&#xff0c;而且效率也比较低&#xff0c;所以现在很多人会采用视频生成二维码的方式…

Could not resolve placeholder ‘xx.xxx.host’ in value “xxx“问题解决

Could not resolve placeholder ‘xx.xxx.host’ in value "xxx"问题解决 众多原因其中之一 springboot 项目&#xff0c;idea 配置apollo 时&#xff0c;运行指定了配置文件 uat 所以使用本地配置文件启动 时&#xff0c;一直去找uat 配置文件&#xff0c;结果自…

树莓派4b测量光照强度

1.BH1750光照强度连接图 2. BH1750工作原理 BH1750的通讯过程 第1步:发送上电命令。 发送的过程和第2步基本一致,把测量命令(0x10)改成上电命令(0x01)。第2步:发送测量命令。 下面图片上的例子,ADDR引脚是接GND的,发送的测量命令是“连续高分辨率测量(0x10)”。 发送数据…

Android11 InputReader分析

InputReader线程主要负责读取输入数据&#xff0c;并把数据交给InputDispatcher线程。本文以多指触摸屏为例&#xff0c;梳理一下InputReader的流程。 InputReader线程主要完成以下工作&#xff1a; 处理已有的输入设备处理新增或者移除的输入设备对输入设备产生的输入数据进行…

【数据结构与算法】力扣 226. 翻转二叉树

题目描述 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a; root [4,2,7,1,3,6,9] 输出&#xff1a; [4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a; root [2,1,3] 输出&#xff1a; [2,3,1…

【算法刷题 | 贪心算法09】4.30(单调递增的数字)

文章目录 16.单调递增的数字16.1题目16.2解法&#xff1a;贪心16.2.1贪心思路16.2.2代码实现 16.单调递增的数字 16.1题目 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的…

项目1:STM32+DHT11+FreeRTOS+emwin+LCD

【屏幕显示DHT11数据】 面向对象的思想编写硬件驱动程序&#xff0c;DHT11采集环境中的温湿度数据。使用FreeRTOS提供的任务间通信、同步、互斥&#xff0c;将DHT11的数据传递给显示任务。显示任务中&#xff0c;使用emWin中间件&#xff0c;制作屏幕的各种界面&#xff0c;并将…

程序员必备的8款工具软件,第5款简直绝了!

没错&#xff0c;今天又送福利了&#xff01;来给大家推荐一波好用的软件~ 都说程序员的电脑上有各种各样的软件工具、编辑器、插件等等&#xff0c;不同岗位的程序员使用的工具也不同。 今天就给你分享8款程序员必备的工具软件&#xff0c;看看是不是你常用的&#xff01; …

【最经典的79个】软件测试面试题(内含答案)备战“金三银四”

001.软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号 测试项目 测试标题 重要级别 预置条件 输入数据 执行步骤 预期结果 0002.问&…