当前位置: 首页 > news >正文

中国icp备案网站网站推广的渠道有哪些

中国icp备案网站,网站推广的渠道有哪些,门户网站建设jz190,可以做数据图的的网站一、requests库简介 使用requests库能快速构建 HTTP 请求,而无需深入了解底层网络协议细节。其API设计直观,使得发送请求就像调用函数一样简单,同时提供了丰富的选项以满足复杂网络交互的需求。这种设计使得无论是初学者还是经验丰富的开发者…

一、requests库简介

使用requests库能快速构建 HTTP 请求,而无需深入了解底层网络协议细节。其API设计直观,使得发送请求就像调用函数一样简单,同时提供了丰富的选项以满足复杂网络交互的需求。这种设计使得无论是初学者还是经验丰富的开发者都能高效地使用 Requests 进行网络编程。

requests的特点如下:

全面的 HTTP 支持: 支持所有 HTTP 方法(GET、POST、PUT、DELETE、PATCH 等),以及常见的 HTTP 特性,如 cookies、重定向、压缩、认证、代理、连接池等。
自动内容处理: 自动解码响应内容,支持 JSON、HTML、XML 等常见格式,并可通过 .text 和 .content 属性直接访问解码后的文本或原始二进制数据。
便捷的请求构建: 可轻松设置请求头、查询参数、请求体、认证信息等,支持多部分表单上传、文件上传、JSON 数据发送等。
灵活的会话管理: 提供 Session 对象,用于维护请求之间的状态(如 cookies、headers),并支持连接池复用,提高性能。
强大的异常处理: 提供明确的异常层次结构,如 requests.exceptions.RequestException、requests.exceptions.HTTPError,便于捕获和处理网络错误、HTTP 状态码异常等。
广泛的兼容性: 支持 Python 2.7 及更高版本的 Python 3.x,与各种操作系统兼容。

Requests 基于 urllib3 模块构建,后者负责底层的网络通信。Requests 采用 Apache2 Licensed 开源协议,这意味着它是一个免费且开放源代码的软件,允许在商业和非商业项目中自由使用、修改和分发。

Requests 的官方文档详尽且易于阅读,提供了丰富的示例和指南,是学习和查阅库功能的首要资源:Requests官方文档

二、安装与导入

安装:

1、PC终端(CMD):

python -m pip install requests

2、PyCharm终端:

pip install requests

导入:

import requests


运行

三、核心组件及其常见属性

1、request

由于requests库主要用于客户端发起HTTP请求,它并不直接暴露一个名为Request的对象供开发者操作,而是提供了requests.Request类作为构建请求的基础,但通常用户更常与requests.Session及其实例方法(如.get()、.post()等)交互。请求构建过程中涉及的属性:

在这里插入图片描述

[请求方法及其区别:
在这里插入图片描述

2、response

当使用requests库收到服务器的响应时,会得到一个requests.Response对象,其常见属性包括:

在这里插入图片描述

布尔值

3、session

requests.Session是一个高级接口,用于管理一系列相关的HTTP请求,并且支持会话保持(如自动处理Cookies)。其主要属性和方法包括:
在这里插入图片描述

四、不同HTTP请求示例

1、GET请求

功能与语义: GET请求用于从服务器获取指定资源。发送GET请求相当于询问服务器:“请给我这个资源。”参数位置: GET请求的参数通常放在URL的查询字符串中,即URL后面以?开始的部分,参数之间用&分隔,每个参数由键值对组成,键与值之间用等号 (=) 连接。例如:https://example.com/api/resource?param1=value1&param2=value2缓存: GET请求的响应通常被认为是安全可缓存的。浏览器、代理服务器和其他中间件可能会缓存GET请求的响应结果,以便在未来相同请求时直接使用缓存,而不是再次向服务器请求。幂等性: GET请求是幂等的,即多次执行相同GET请求(针对同一资源)应始终返回相同的响应结果,不会对服务器状态产生任何影响。安全性: 相对安全,因为它不改变服务器状态。

示例:

import requests
url_get='https://postman-echo.com/get?key1=value1&key2=value2'
response = requests.get(url_get)
print(response.text)

控制台输出如下:

在这里插入图片描述

设置查询参数示例:

param={'key3':'value3','key4':'value4','key5':'value5',
}
response_get_param=requests.get(url_get,params=param)
print(response_get_param.url)
print(response_get_param.text)

控制台输出如下:
在这里插入图片描述

可以看到使用params参数传参,会将参数自动拼接到url上

2、POST请求

功能与语义: POST请求用于向服务器提交数据,主要用于创建新的资源或执行某种操作(更新、删除等,具体取决于API设计)。发送POST请求相当于告诉服务器:“请根据我提供的数据执行某个操作。”参数位置: POST请求的数据通常放在请求正文中,可以是完整的资源表示(创建资源)或操作指令及关联数据(执行操作)。请求体的格式取决于Content-Type标头,常见的是application/json(JSON格式)或application/xml(XML格式)。缓存: POST请求的响应通常不应被缓存,因为它们可能改变了服务器状态。幂等性: POST请求不一定是幂等的,即多次执行相同POST请求可能会产生不同的结果(例如,创建多个新的资源)。但某些情况下,如当POST用于替换资源或执行幂等操作时,它也可以是幂等的。安全性: POST请求可能引发副作用,因为它不仅用于创建资源,也可能执行非幂等操作。

提交请求体表单数据示例:

通过data参数传递表单编码数据,适用于POST、PUT等请求。数据会被编码为application/x-www-form-urlencoded格式

url_post='https://postman-echo.com/post'
data={'key':'value','website':'www.baidu.com'
}
response_post_data=requests.post(url_post,data=data)
print(response_post_data.text)

控制台输出如下:
在这里插入图片描述

发送JSON数据示例:

通过json参数直接传递JSON数据,适用于支持JSON格式请求体的POST、PUT等请求。requests会自动将字典转换为JSON字符串,并设置Content-Type为application/json

json_data={'key':'value','website':'www.baidu.com'
}
response_post_json=requests.post(url_post,json=json_data)
print(response_post_json.text)

控制台输出如下:

我们发现使用参数data、json,传参在请求正文中的位置是不一样的,

使用 data 参数时,数据将以 application/x-www-form-urlencoded 格式编码,并以 key=value 形式的字符串放置在请求正文中。
使用 json 参数时,数据将以 JSON 文本格式放置在请求正文中,结构清晰,适合传输复杂的数据结构。

3、上传文件

示例:


import requestsurl_post='https://postman-echo.com/post'
file_path='./test.txt'# 构建 multipart/form-data 格式的文件数据
files = {'file': open(file_path, 'rb')}# 发起POST请求,携带文件数据
response = requests.post(url_post, files=files)# 检查响应状态码
if response.status_code == 200:print("文件上传成功,响应内容:")print(response.text)
else:print(f"文件上传失败,状态码:{response.status_code}")

控制台输出如下:
在这里插入图片描述

五、Session实现会话管理

使用requests.Session()创建一个会话对象(session),以便在一系列请求之间保持某些状态,如请求头、公共参数、cookies、认证信息、连接池等。以下是使用session对象的示例:

1、通过Session对象设置全局请求头及全局参数

import requests# 创建一个Session对象
session = requests.Session()# 设置全局请求头(适用于所有通过此Session发出的请求)
session.headers.update({'User-Agent': 'MyApp/1.0','X-Api-Key': 'your_api_key'
})# 设置共享公共参数
session.params = {'param1': 'value1','param2': 'value2'
}# 使用Session对象发起GET请求
response = session.get('https://postman-echo.com/get')# 检查响应状态码
if response.status_code == 200:print("GET请求成功,响应内容:")print(response.json())
else:print(f"GET请求失败,状态码:{response.status_code}")# 使用Session对象发起POST请求,携带JSON数据
post_data = {"key1": "value1","key2": "value2"
}
response = session.post('https://postman-echo.com/post', json=post_data)# 检查响应状态码
if response.status_code == 200:print("POST请求成功,响应内容:")print(response.json())
else:print(f"POST请求失败,状态码:{response.status_code}")

控制台输出如下:
在这里插入图片描述
可以明显发现,使用Session()对象设置的全局请求头以及全局参数都实现了

2、通过Session对象管理cookie:

import requestssession = requests.Session()
# 使用Session对象发起GET请求,获取一个带Set-Cookie响应头的响应
response = session.get('https://postman-echo.com/cookies/set?foo=bar&baz=qux')# 检查响应状态码
if response.status_code == 200:print("GET请求成功,响应内容:")print(response.json())# 使用Session对象再次发起GET请求,此时Session会自动附上之前接收到的cookies
response = session.get('https://postman-echo.com/cookies')# 检查响应状态码
if response.status_code == 200:print("\nCookies检查请求成功,响应内容:")print(response.json())
else:print(f"Cookies检查请求失败,状态码:{response.status_code}")# 关闭Session(可选,释放资源)
session.close()
在这个示例中:首先创建了一个requests.Session()对象,用于管理一系列相关的HTTP请求。通过session.headers.update()方法设置了全局请求头。这些头信息将自动应用到通过该Session发出的所有请求上,无需在每次请求时单独设置。使用Session对象的get()方法发起一个GET请求,并检查响应状态码。如果状态码为200,说明请求成功,打印响应内容。使用Session对象的post()方法发起一个POST请求,携带JSON数据。同样检查响应状态码,如果状态码为200,说明请求成功,打印响应内容。(可选)使用session.close()关闭Session,释放相关资源。在实际使用中,尤其是在长生命周期的程序中,确保及时关闭Session以避免资源泄漏。

控制台输出如下:
在这里插入图片描述

希望以上内容能帮助大家有效理解requests模块,同时也建议大家通过开源api网站去强化练习使用requests,具备编写Python程序与各类Web服务进行交互的能力,为进一步学习网络编程、API开发与集成等技术打下坚实基础。

http://www.dt0577.cn/news/15680.html

相关文章:

  • 莱芜区法院网站企业网络
  • 以.cn结尾的个人网站域名花钱吗故事式软文广告300字
  • 做网站的软件初中生网站建设技术外包
  • 做淘宝要用的网站网络营销的优化和推广方式
  • 二手网站排名sem推广
  • 网站数据丢失怎么办国内搜索引擎排名第一
  • wordpress仿小菜淘宝客插件什么是seo技术
  • 国内做的比较好的网站是什么免费网页设计制作网站
  • 济南网站制作服务做网页
  • 中国外贸人才网搜索引擎优化的主要内容
  • 网站维护怎么学关键词优化seo优化
  • 网站底部关键词企业推广网络营销
  • 做 理财网站有哪些问题南京响应式网站建设
  • 深圳创建网站电商平台怎么加入
  • 网站做桌面应用 iOS百度竞价排名是什么意思
  • 做网站什么是解析什么是跳转网络优化器免费
  • 拥有自己的网站 如何做推广网络营销主要特点有哪些
  • 武汉网站开发关于普通话的手抄报
  • 图书馆网站建设情况总结上海关键词优化方法
  • 专门做橱柜衣柜效果图的网站国际免费b站
  • 做竞价网站外链代发
  • 买入网站建设费的分录北京网站定制公司
  • 视频网站建设成本网络精准推广
  • 兰州建设一个网站多少钱域名注册平台
  • 网站使用字体ui设计
  • 湖南十大软件公司介绍seo的流程是怎么样的
  • 那个网站有兼职做室内设计扬州百度seo
  • 茂名市制作网站的公司一份完整的品牌策划方案
  • 北京房产网站建设网络seo是什么
  • 昆明网站seo外包网络推广业务