python中requests模块小技巧

python爬虫初级,requests基本用法 1,requests的作用: 发送网络请求,返回响应数据2,那为什么使用requests,而不是urllib? 1,requests的底层实现就是urllib 2,requests在python2和python3中通用,方法完全相同 3,requests简单易用 4,requests能够自动帮助我们解压网页内容3,使用方法举例 使用终端打开ipython3... 阅读详情

一、requests.utils.dict_from_cookiejar()  把cookie对象转化为字典

import requests
response = requests.get("http://www.baidu.com")
response.cookies 
>>> <RequestsCookieJar[Cookie(version=0, name='BDORZ', value='27315', port=None, 
port_specified=False, domain='.baidu.com', domain_specified=True, domain_initial_dot=True,
 path='/', path_specified=True, secure=False, expires=1563633603, discard=False, 
comment=None, comment_url=None, rest={}, rfc2109=False)]>


requests.utils.dict_from_cookiejar(response.cookies) 
>>>{'BDORZ': '27315'}

调用response.cookies时可以看出打印出来的是一堆东西;但是当转换为字典时,只对应一个键值对。这是因为本次请求百度时,服务器可能只向本地设置一个cookie,也可能设置所有cookie。若只设置一条cookie,剩余的cookie可能是在其他请求时分批设置到本地。
反过来:将字典转换为cookie对象

requests.utils.cookiejar_from_dict({'BDORZ': '27315'})
>>>  <RequestsCookieJar[Cookie(version=0, name='BDORZ', value='27315', port=None, 
port_specified=False, domain='', domain_specified=False, domain_initial_dot=False, 
path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, 
comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]>

二、requests.utils.unquote() 对已编码的url地址进行解码

requests.utils.quote("中华有为")
>>> '%E4%B8%AD%E5%8D%8E%E6%9C%89%E4%B8%BA'

requests.utils.unquote("%E4%B8%AD%E5%8D%8E%E6%9C%89%E4%B8%BA")
>>> '中华有为'

常用于获取url中的内容。

三、请求SSL证书验证

有时候打开某个网站时会弹出不是私密链接,如图所示。对于这样的网站直接爬取肯定是有问题的。

requests.get("https://www.12315.cn/")

>>> SSLError: HTTPSConnectionPool(host='www.12315.cn', port=443): Max retries exceeded with
 url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 
'tls_process_server_certificate', 'certificate verify failed')])")))

报错!应在请求里面添加verify=False属性:

requests.get("https://www.12315.cn/", verify=False) 

>>> D:\anaconda3\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequestWarning: 
Unverified HTTPS request is being made. Adding certificate verification is strongly 
advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)

虽然产生警告,但不影响代码执行。

四、设置超时参数

打开一个网站时,可能因为网速不是很好,要等待很长时间。那么对于一个程序来说,执行的效率就很低了而且不知道程序在哪里出现的问题。所以可以添加一个超时参数,若在设定时间内成功响应则程序继续向下走,若超时则报错,强行保证每个请求不会花太多时间。

response = requests.get("http://www.baidu.com", timeout=3)

这样存在一个问题,例如当我们请求很多url地址时,难免有一个url地址响应的比较慢。这样程序就会报错。怎么解决这个问题呢?平时遇到网页在一直转刷新不出来的情况时,我们往往会刷新一下。所以可以用代码刷新一下,也就是重新请求一下。  这就要重新引入一个模块--retrying。

import requests
from retrying import retry


@retry(stop_max_attempt_number=3)  # 最多重新执行3次
def requrl(url):
    print("="*10)   # 检验是否执行了3次
    response = requests.get(url, timeout=3)
    html_str = response.content.decode()
    return html_str


try:
    print(requrl("www.baidu.com"))   # 输入错误的ip地址,模拟请求失败。 正确url:"http://www.baidu.com"
except:
    print("请求失败!")

>>>
==========
==========
==========
请求失败!

五、配合状态码判断是否请求成功

import requests
response = requests.get("http://www.baidu.com")
try:
    assert response.status_code == 200
except:
    print("请求失败!")

若单纯使用assert,请求失败时会报错。所以配合try-except处理这个错误。

requests模块(三、cookie相关的请求及其他高级用法) 目录requess模块处理cookie相关内容1 爬虫中使用cookie1.1 爬虫中使用cookie的利弊1.2 requests处理cookie的方法2 cookie添加在heades中2.1 headers中cookie的位置2.2 cookie的具体组成的字段2.3 在headers中使用cookie3 使用cookies参数接收字典形式的cookie4 使用requests.session处理cookie4.1 使用方法requests模块的其他方法1 requests中cookirJar的处理方 阅读详情

相关推荐

Python爬虫(requests模块使用)

requests发送get请求 #requests模块安装 pip install requests # 1. 导入request模块 import requests # 2. 准备目标url地址 url = 'https://www.baidu.com' # 3. 向目标url地址发送get请求 response = requests.get(url) # 4. 打印响应内容 print(response.text) requests响应对象 # 1. 导入request模块 im

qq_43966236的博客 904

爬虫之requests模块cookieJar对象转换为cookies字典的方法

爬虫之requests模块cookieJar对象转换为cookies字典的方法 使用requests获取的resposne对象,具有cookies属性。该属性值是一个cookieJar类型,包含了对方服务器设置在本地的cookie。我们如何将其转换为cookies字典呢? 转换方法 cookies_dict = requests.utils.dict_from_cookiejar(response.cookies) 其中response.cookies返回的就是cookieJar类

IT之一小佬的博客 3660

Honeywell EPKS 核心功能块组态与执行调度实战解析

本文深入解析Honeywell EPKS系统的核心功能块组态与执行调度技术,涵盖控制模块(CM)、顺序控制模块(SCM)和输入输出模块(IOM)的配置方法。通过实战案例分享执行顺序(ORDERINCM)和CEE执行周期的优化策略,帮助工程师提升工业自动化系统的控制精度和运行效率。

weixin_28724319的博客 414

requests模块系列二

在打印的输出结果中搜索title,html中的标题文本内容如果是你的github账号,则成功利用headers参数携带cookie,获取登陆后才能访问的页面。在爬虫中,一个请求很久没有结果,就会让整个项目的效率变得非常低,这个时候我们就需要对请求进行强制要求,让他必须在特定的时间内返回结果,否则就报错。proxy代理参数通过指定代理ip,让代理ip对应的正向代理服务器转发我们发送的请求,那么我们首先来了解一下代理ip以及代理服务器。根据网站所使用的协议不同,需要使用相应协议的代理服务。

qq_41810183的博客 591

单细胞测序数据整合

基于Seurat 联合harmony进行单细胞数据整合分析

G2530051386的博客 9791

Acute逻辑分析仪TL4134E实战:从触发电平到协议解析的完整避坑指南

本文是一份针对Acute逻辑分析仪TL4134E的实战避坑指南。文章深入解析了触发电平分组、采样率与存储深度权衡、高级触发等核心概念,并提供了混合电压系统测量、eMMC调试内存优化、SPI/I2C/UART协议解析排错等具体配置技巧,帮助硬件工程师和嵌入式开发者高效捕获与分析数字信号,快速定位通信问题。

weixin_29207149的博客 404

Python requests 模块

requests模块超详细

qq_52758588的博客 8058

电磁场仿真软件:Sonnet_(3).Sonnet用户界面与操作

Sonnet支持用户通过二次开发自定义工具,例如:编写Python脚本,实现自定义功能。将脚本保存为工具插件。在Sonnet中加载并使用自定义工具。# 示例:自定义工具 import sonnet def custom_tool(design , object , parameter , value) : """自定义工具示例,设置对象的指定参数。

kkchenjj的博客 1523

python如何导入requests模块_python之requests模块

requests模块是一个用于访问网络的模块,其实类似的模块还有很多,不在一一在这里解释。这么多的相似的模块为什么都说只有这个好用呢,因为他人性化。如果你学过urllib之类的模块的话,比如urllib,对比一下就很清楚了。1、requests模块的安装requests模块的安装非常简单,使用pip install requests命令即可安装,我是在python的Terminal中直接安装的,大...

weixin_39879674的博客 5063

JavaFX 表视图

我们可以使用来自 JavaFX API 的 TableView,TableColumn 和 TableCell 类以表格形式表示数据。通过实现数据模型和应用单元工厂来填充表中的数据。表类可以按列排序数据,并在必要时调整列大小。

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 404

YOLOv11改进 | 网络结构代码逐行解析(一) | 项目目录构造分析

Hello,大家好这次给大家带来的不是改进,是整个YOLOv11项目的分析整个系列大概会更新5-7篇左右的文章从项目的目录到每一个功能代码的都会进行详细的讲解,下面开始进行YOLOv11逐行解析的第一篇——项目目录构造分析开头之前顺便给大家推荐一下我的专栏,本专栏更新上百余篇YOLOv11改进机制手把手教你添加到网络结构中,同时针对拿到模型不知道如何修改,不知道如何发表论文的读者进行针对性的文章介绍,本专栏质量分平均分96分,内容质量完全有所保证。

Snu77的博客 1万+

Python—requests模块详解!

(注意open的时候制定encoding编码方式)Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。获取文本方式的响应体实例:当你访问 r.text 之时,会使用其响应的文本编码进行解码,并且你可以修改其编码让 r.text 使用自定义的编码进行解码。会话对象让你能够跨请求保持某些参数,最方便的是在同一个Session实例发出的所有请求之间保持cookies,且这些都是自动处理的,甚是方便。

2301_78217634的博客 1810

1分钟了解LangChain是什么?

是一个基于大型语言模型(LLM)开发应用程序的框架, 它旨在简化语言模型应用的开发流程,特别是在构建对话系统和其他基于语言的AI解决方案时.目标是将复杂的语言模型技术转化为可通过简单API调用实现的功能,从而使开发者能够更加专注于创造性的解决方案设计。高效地解决了开发大语言模型应用的痛点问题。Langchain 最主要的特色是可以将 LLM 应用研发过程中的交互 Prompt、LLM 模型调用、语言模型与环境互动的自适应等方式融为一体。

gorgor在码农 2630

python如何导入requests模块_浅谈python中requests模块导入的问题

浅谈python中requests模块导入的问题今天使用Pycharm来抓取网页图片时候,要导入requests模块,但是在pycharm中import requests 时候报错。原因: python中还没有安装requests库解决办法:1.先找到自己python安装目录下的pip2.在自己的电脑里打开cmd窗口。先点击开始栏,在搜索栏输入cmd,按Enter,打打开cmd窗口。在cmd里将目...

weixin_39649660的博客 2886

ABAP 7.40 FOR 表达式与 REDUCE 构造运算符深度解析:从语法新特性到真实项目实践

ABAP 7.40引入了FOR和REDUCE表达式语法,使代码更简洁和函数式。FOR支持内表迭代和条件迭代,可配合VALUE构造新内表,替代传统LOOP。REDUCE用于归约运算,将多值折叠为单一结果,如求和、拼接等。这些新特性让ABAP更现代化,与SAP新架构协同更好,提升了开发效率和代码可读性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 316

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python如何导入requests模块_PYTHON如何安装requests模块

PYTHON如何安装requests模块工具/原料电脑PYTHON方法/步骤1百度搜索Python Extension Packages for Windows,进入下载安装包的网站,在这里可以查找到关于PYTHON的扩展模块的安装包,并可以下载2按CTRL+F快捷捷,页面顶部出现查找的文本框3输入requests,会搜索到六条符合搜索条件的内容,这六条内容都是REQUESTS模块的安装包4双击第...

weixin_39900582的博客 523

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python之Requests模块

python之Requests模块

weixin_39926295的博客 1228

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python Requests模块全面教程

通过本文的介绍,我们详细了解了Python Requests模块的基本用法和高级特性。Requests模块使得发送HTTP请求变得简单而高效,适合用于各种网络数据交互场景。

孤客科技 1458

Python的http模块requests

Python的requests模块是一个用于发送HTTP请求的库,它简化了与Web服务交互的过程。在本篇博客中,我们将介绍如何使用requests模块发送HTTP请求,以及如何处理响应。

weixin_62988359的博客 3122

python2 requests模块_Python requests模块

准备工作这一部分需要用到request模块,准备工作就是安装request模块。用request.get()发起请求import requests# 1、构造请求的URLurl = "http://..."# 2、创建请求参数params = {"mobilephone": "18012345678","pwd": "123456","regname": "zfy"}headers ={"User...

weixin_40001309的博客 1230

Python爬虫 之requests模块

Python 之requests模块 Python爬虫初探: 一、Requests模块的概念 二、requests库的安装 三、requests的基本用法 四、简单实例,get()基本请求

一直努力 699
上一篇: requests模块-response.text和response.content的区别
下一篇: 重要的统计量(期望、方差、协方差、相关系数、矩)的概念和性质
Answerlzd
博客等级 码龄9年 67粉丝 119原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值