Python Requests 库高级用法

低代码Agent开发框架使用指南(二)—Coze平台核心功能概览 本篇分享系统介绍了字节跳动推出的低代码智能体开发平台Coze。Coze以免费易用、多模型支持和便捷的跨平台发布为核心优势,显著降低了智能体开发门槛。文章详细解析了平台的六大核心功能:扩展能力边界的插件系统、增强认知的知识库、结构化数据管理的数据库、可视化图像处理的图像流、实现复杂逻辑编排的工作流,以及处理复杂任务的多智能体协作机制,全面展现了Coze平台的强大能力。 阅读详情

会话维持

在 requests 中,直接使用 get() 或 post() 方法确实可以做到模拟网页的请求,但是这实际上是两个不同的会话,相当于用了两个浏览器打开不同的页面,而这两个页面是不共享 cookies 的。会话维持相当于打在原来的浏览器上新开了一个页面,这样就不用每次去设置 cookies 了——这就是Session对象。

s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")
print(r.text)

# 输出结果
{
  "cookies": {}
}

这里我们请求了一个测试网站,设置了一个 Cookie ,名称为 num ,内容为123456,之后又发起了请求,获取Cookies,结果并没有取到第一次请求的 Cookie。

试想一种常见的场景:我登录一个网站之后,点击里面某个功能的时候,是不需要再登录的,为什么?因为登录操作之后,浏览器与服务器之间就建立了一个 Session ,我在同一浏览器再次请求服务器的时候,共用的是这一个 Session ,所以不用再次登录。那么如果我使用代码去请求呢?按照上面的例子,我请求两次并不会共享 Session,那就没法实现这个场景功能。而 Requests 的会话可以实现这种场景功能。

我们再来看个例子:​​​​​​​

session = requests.Session()
session.get('http://httpbin.org/cookies/set/num/123456')
res = session.get('http://httpbin.org/cookies')
print(res.text)

# 输出结果
{
  "cookies": {
    "num": "123456"
  }
}

这个例子中,我们使用 Session 对象请求,第一次请求设置的 Cookie ,在第二次请求中我们仍然可以获取到,说明两次请求在同一个 Session 中。

身份认证

在访问网站时,我们经常会遇到需要身份认证的页面,需要输入用户名和密码才能登录网站。这个时候我们可以使用 Requests 自带的身份认证功能。​​​​​​​

import requests
from requests.auth import HTTPBasicAuth

#请将username和password替换成自己在该网站的登录用户名和密码
res = requests.get('http://www.baidu.com', auth=HTTPBasicAuth('username', 'password'))
print(res.status_code)

# 输出结果
200

如果用户名和密码都正确的话,就会成功,返回200状态码。否则返回401状态码。

SSL 证书验证

现在随处可见 https 开头的网站,Requests 可以为 HTTPS 请求验证 SSL 证书,就像 web 浏览器一样。要想检查某个主机的 SSL 证书,你可以使用 verify 参数:​​​​​​​

import requests

r = requests.get('https://httpbin.org', verify=True)
print(r.text)

如果想检查验证某个主机的 SSL 证书,就将 verify 设置为 True ,如果证书无效,就会报 requests.exceptions.SSLError 的错误。如果想跳过检查,就将 verify 参数设置为 False。verify 参数默认是 True ,所以如果需要的话,需要手动设置下这个变量。

代理设置

对于某些网站,如果请求几次,或许能正常获取内容。一旦开始爬取,对于大规模的频繁请求,网站可能会弹出验证码,或者跳转到登陆认证,或者封禁IP,导致一定时间内无法访问。此时,就需要设置代理还解决这个问题,就要用到 proxies 参数。​​​​​​​

# 代理设置
proxies = {
    'http': 'http://127.0.0.1:9001',
    'https': 'https://127.0.0.2:9002'
}
requests.get('http://www.baidu.com', proxies=proxies)

这里的两个地址都是编的,仅做示例用。如果你想跑起来的话需要换成有效代理。

SOCKS

除了基本的 HTTP 代理,Request 还支持 SOCKS 协议的代理。这是一个可选功能,若要使用, 你需要安装第三方库。你可以用 pip 获取依赖:

$ pip install requests[socks]

安装好依赖以后,使用 SOCKS 代理和使用 HTTP 代理一样简单:​​​​​​​

proxies = {
    'http': 'socks5://user:pass@host:port',
    'https': 'socks5://user:pass@host:port'
}

超时设置

在 Rquests 的基本用法中,我们介绍了超时的用法,通过使用 timeout 参数来配置。例如:

r = requests.get('https://github.com', timeout=5)

我们知道,一个 HTTP 请求会有 connect 和 read 两部分时间,上面的例子中设置的是二者加起来的超时时间。如果要分别制定,我们需要传入一个元组:

r = requests.get('https://github.com', timeout=(3.05, 27))

如果远端服务器很慢,如果你想要 Request 一直等待服务器返回,那么可以给 timeout 赋值 None :

r = requests.get('https://github.com', timeout=None)
HFSS实战项目——GPS北斗双模微带天线 本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。 阅读详情

相关推荐

ABB机器人绝对精度实战:从焊接路径优化到TCP控制(附配置步骤)

本文深入探讨了ABB机器人绝对精度在焊接路径优化中的核心价值。通过对比重复定位精度,阐明绝对精度如何补偿机械误差,确保TCP在整个运动路径上的轨迹精度。文章提供了从示教器激活绝对精度功能的详细配置步骤,并分享了针对焊接抖动和实现0.2mm路径精度的进阶调优技巧,包括TCP标定、伺服参数优化与系统维护。

weixin_29053073的博客 350

Requests的高级特性

上一篇我们介绍了 Requests 库的基本用法,学会之后大家就可以应付一般的请求了。这一篇我们接着介绍 Requests 的高级用法,以便应付一些棘手的问题。 会话维持 在 requests 中,直接使用 get() 或 post() 方法确实可以做到模拟网页的请求,但是这实际上是两个不同的会话,相当于用了两个浏览器打开不同的页面,而这两个页面是不共享 cookies 的。会话维持相当于打在原...

ramblerviper的博客 354

《科研伦理与学术规范》 全部 习题_答案 2020年秋

科研伦理与学术规范 答案 文章目录科研伦理与学术规范 答案1. 第一章课后习题(必做) 答案1.1 第一章Demo2. 第二章课后习题(必做) 答案3. 第三章课后习题(必做) 答案4. 第四章课后习题(必做) 答案5. 第五章课后习题(必做) 答案6. 第六章课后习题(必做) 答案 # 每行5题 #写于2020.11.17 侵删 1. 第一章课后习题(必做) 答案 ABC, A, B ,D ,ABCD ABC, D, A, BCD, C D, D, 1.1 第一章Demo

羊老羊 25万+

python爬虫requests.post()_python爬虫使用requests发送post请求示例详解

简介HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式。服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析。具体的编码方式包括:application/x-www-form-urlencoded 最常见post提交数据的方式,以form表单形式提交数据。application/json 以...

weixin_39613744的博客 808

STM32使用HAL库实现ModbusRTU主站核心要点

深入解析STM32如何利用HAL库高效实现ModbusRTU主站通信,重点讲解串口配置、定时控制与modbusrtu协议帧的构建方法,提升嵌入式通信稳定性与实时性。

weixin_42668301的博客 373

零基础入门转录组数据可视化——绘制差异小提琴图(常规)

转录组数据可视化之一,先介绍相关基础知识,其次用实际案例为基础,由浅入深介绍差异小提琴图绘制的全过程,包括内容有相关代码和截屏。

呆猪儿的博客 635

2023全网最全requests库和requests模块使用详解(建议收藏)

2023全网最全requests库和requests模块使用详解,还不进来看看!!

m0_58026506的博客 4192

某勾网之登录过程逆向

拉勾网的登录过程逆向,包含请求头(X-S-HEADER、X-K-HEADER、X-SS-REQ-HEADER等) 以及 请求参数/返回数据的加解密。

shanf7921的博客 3万+

python request发送用户名密码_python3下使用requests实现模拟用户登录

python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)1. 了解cookie和session首先一定要先了解到cookie和session是什么,这是后面理解网站交互,模拟用户登录的基础。1.1. 无状态协议:Http如上图所示,HTTP协议 是无状态的协议,用户浏览服务器上的内容,只需要发送页面请求,服务器返回内容。对于服务器来说,并不关心,也并不知道是哪个用户的请求。对于...

weixin_39964573的博客 6198

非技术面试题精选大全

回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业喜欢有礼貌的求职者。

吃面爱放香菜的博客 434

隧道裂缝检测【C++PCL】

我们团队注重每一个细节,确保代码的可读性、可维护性和可扩展性达到最高标准。我们严格遵循行业最佳实践,采用模块化和面向对象的设计原则,使得我们的代码结构清晰且易于理解。我们的点云服务更是引以为傲。我们的技术团队拥有深厚的专业知识和丰富的经验,能够提供高度准确和高效的点云处理服务。无论是点云的获取、存储还是分析,我们都能够满足客户的需求,并提供出色的解决方案。我们的技术实力也是无与伦比的,拥有广泛的技术背景和深入的专业知识。

weixin_45196569的博客 848

【Python_requests学习笔记(四)】requests模块中verify参数用法

此篇文章中介绍requests模块中的查询参数params的详细用法和使用环境。

禾戊之昂的博客 2523

一站式讲解Wireshark网络抓包分析的若干场景、过滤条件及分析方法

本文详细讲解常用的抓包工具、抓包分析的网络场景、分析抓包时的多种过滤条件以及如何结合常用的协议去分析排查问题,给大家提供一个借鉴或参考。

dvlinker的技术专栏 5万+

Python HTTP客户端库requests的高级用法

对象允许你跨请求保持某些参数,比如cookies、headers和认证信息。这对于需要多个请求来完成的操作特别有用,比如登录到网站后访问受保护的资源。库是Python中一个非常流行的HTTP客户端库,它提供了简单易用的API来发送HTTP请求并处理响应。但请注意,这样做会降低安全性,因为它会使你容易受到中间人攻击。库还支持许多高级用法,使得它能够应对更复杂的网络请求场景。库支持文件的上传和下载。库允许你为请求设置超时时间,并可以使用第三方库(如。在处理网络请求时,超时和重试机制是非常重要的。

weixin_73725158的博客 991

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python中Requests库的高级用法

前面讲了Python的urllib库的使用和方法,Python网络数据采集Urllib库的基本使用 ,Python的urllib高级用法 。 今天我们来学习下Python中Requests库的用法。(官方手册)(四种传参方式)(创业) Requests库的安装 利用 pip 安装,如果你安装了pip包(一款Python包管理工具,不知道可以百度哟),或者集成环境,比如Python(x,...

weixin_36491999的博客 752

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python爬虫第7节-requests库的高级用法

上一节,我们认识了requests库的基本用法,像发起GET、POST请求,以及了解Response对象是什么。这一节,咱们接着讲讲requests库的一些高级用法,比如怎么上传文件,如何设置Cookies和代理。

攻城狮7号的博客 1782

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python——requests库的高级用法

Python——requests库的高级用法 导入库,直接介绍方法: import requests 上传文件 #上传文件,用到的参数 files url = '' files = {'file':'文件的路径'} #或 files = {'file':open('文件名','打开方式')} r = requests.get(url,files = files) print(r.tex...

cc的博客 468

Python爬虫从入门到精通——请求库requests的使用(二):高级用法

分类目录:《Python爬虫从入门到精通》总目录 在《基本库requests的使用(一):基本用法》中,我们了解了requests的基本用法,如基本的GET、POST请求以及Response对象。在本文中,我们来了解下requests的一些高级用法,如文件上传、Cookies设置、代理设置等。 文件上传 我们知道requests可以模拟提交一些数据。假如有的网站需要上传文件,我们也可以用它来实现,...

冯·诺依曼 3万+

【Python爬虫】Requests库高级用法:深入Session保持与证书处理

Requests是Python中最流行的HTTP请求库,以其简洁的API和强大的功能深受开发者喜爱。它支持GET、POST等请求方法,处理URL参数、头信息和数据体,适合网络爬虫、API调用等场景。print(response.status_code) # 输出:200print(response.json()) # 输出JSON数据Requests的核心优势在于易用性和灵活性,但其高级用法如Session保持和证书处理能进一步提升效率和安全性。本文将深入探讨这些功能,结合代码,由浅入深讲解。

牛奶夹心巧克力 1436

Python Requests 库的高级用法与优化方案

通过掌握 Requests 库的高级特性,并采取适当的优化措施,您可以显著提升代码的质量和执行效率。无论是通过会话管理简化重复任务,还是利用连接池和异步编程提高性能,合理运用这些技巧都将帮助您构建更加健壮的应用程序。希望这篇文章能够为您提供有价值的参考!```

2501_90715360的博客 724
上一篇: Python Requests 库的基本使用
下一篇: Python collections 模块
唐僧不爱八戒
博客等级 码龄9年 158粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值