python中的requests,response.text与response.content及其编码

2023-11-15

response的属性:

import requests
response=requests.get("http://www.baidu.com/")
print(response)            #  <Response [200]>
print(type(response))   # <class 'requests.models.Response'>
1. response.status_code

http请求的返回状态,2XX 表示连接成功,3XX 表示跳转 , 4XX 客户端错误 , 500 服务器错误

2. response.text

http响应内容的 字符串(str) 形式,请求url对应的页面内容

response=requests.get("http://www.baidu.com/")
print(response.text)

打印出的内容含有乱码:

# <title>ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“</title>

修改如下, 改变下载得到的页面的编码,就可以正常打印出"友好的"文本了:

response.encoding="utf-8"
print(response.text)  # 打印文本中没有乱码

小结 : 更改编码使用:response.encoding=“utf-8” 或者 response.encoding=”gbk”
具体要看你请求的网页是用什么方式编码的,针对不同情况用对应的编码方式.

比如下面这个例子, 不用编码也可以打印正常文本 ,如果你还是用response.encoding=“utf-8” ,反而会出现乱码

# 没有乱码:
response =requests.get("http://www.qq.com/")
print(response.text)   

response =requests.get("http://www.qq.com/")
response.encoding="gbk"  
print(response.text)    

# 有乱码:
response =requests.get("http://www.qq.com/")
response.encoding="utf-8"  
print(response.text)    
3. response.content

HTTP响应内容的 二进制(bytes) 形式

response =requests.get("http://www.baidu.com/")
# print(response.content)     #打印出的是二进制形式
print(response.content.decode("utf-8"))
response =requests.get("http://www.qq.com/")
# print(response.content)     #打印出的是二进制形式 
print(response.content.decode("gbk"))

小结:更改编码使用 response.content.deocde(“utf8”)
更推荐使用response.content.deocde()的方式获取响应的html页面.

4. response.encoding

从HTTP header中猜测的响应内容编码方式

5. response.apparent_encoding

从内容分析出的响应内容的编码方式(备选编码方式)

6. response.headers

http响应内容的头部内容

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中的requests,response.text与response.content及其编码 的相关文章

  • 具有多个输入的kerasvalidation_data

    我尝试使用validation data方法 但是有问题 model fit X macd train X rsi train X ema train Y train sample weight sample weight validati
  • 当默认 pip 为 pip2 时,升级 pip3 的正确格式是什么?

    我为两者开发Python 2 and 3 因此 我必须同时使用pip2 and pip3 使用时pip3 我收到此升级请求 最后两行 pip3 install arrow Requirement already satisfied use
  • 如何让Python的socket服务器永远运行

    我有这段代码创建了一个简单的Python套接字服务器 但是每次客户端断开连接时它都会关闭 如何让它永远运行 import socket HOST PORT 8000 s socket socket socket AF INET socket
  • 管理 Tweepy API 搜索

    如果这是对之前在其他地方回答过的问题的粗略重复 请原谅我 但我不知道如何使用 tweepy API 搜索功能 是否有任何有关如何使用搜索推文的文档api search 功能 有什么方法可以控制返回的推文数量 结果类型等功能 由于某种原因 结
  • 在 Django 中获取数据库类型[重复]

    这个问题在这里已经有答案了 我需要能够确定 Django 运行时使用的数据库类型 MYSQL False if
  • 如何使用 boto3 从 AWS Cognito 获取经过身份验证的身份响应

    我想使用 boto3 获取访问 AWS 服务的临时凭证 用例是这样的 我的 Cognito 用户池中的用户登录到我的服务器 我希望服务器代码为该用户提供访问其他 AWS 服务的临时凭证 我有一个存储我的用户的 Cognito 用户池 我有一
  • 修复类以在 Flask 会话中启用对象存储[重复]

    这个问题在这里已经有答案了 我有一个自定义类 Passport 其中包含活动用户身份和权限 我曾经将它存储在会话中 如下所示 p Passport p do something fancy session passport p 它就奏效了
  • 为什么我不能“string”.print()?

    我的理解print 在 Python 和 Ruby 以及其他语言 中 它是字符串 或其他类型 上的方法 因为它的语法非常常用 打印 嗨 works 那么为什么不呢 hi print 在 Python 中或 hi print在红宝石工作 当你
  • 覆盖现有的 django-admin 命令

    除了编写自定义 django admin 命令之外 这是有详细记录的 https docs djangoproject com en 1 9 howto custom management commands 我希望能够覆盖现有命令 例如ma
  • 如何将 pip 指向 Mercurial 分支?

    我正在尝试通过 pip 将我的应用程序安装到 virtualenv 进行测试 安装时效果很好default or tip像这样 pip install e hg https email protected cdn cgi l email p
  • 将 for 循环替换为 pyspark 中的并行进程

    我在脚本中使用 for 循环来为 size DF 数据帧 的每个元素调用函数 但这需要很多时间 我尝试通过地图删除 for 循环 但没有得到任何输出 size DF 是我从表中获取的大约 300 个元素的列表 用于 import call
  • 让 TensorFlow 在 ARM Mac 上使用 GPU

    我已经安装了TensorFlow在 M1 上 ARM Mac 根据这些说明 https github com apple tensorflow macos issues 153 一切正常 然而 模型训练正在进行CPU 如何将培训切换到GPU
  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • 与 GNU Make 等 Python 相关的并行任务并发

    我正在寻找一种方法或者可能是一种哲学方法来如何在 python 中执行类似 GNU Make 的操作 目前 我们使用 makefile 来执行处理 因为 makefile 非常擅长通过更改单个选项 j x 进行并行运行 此外 gnu mak
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • 为什么 tesseract 无法从这个简单的图像中读取文本?

    我在 pytesseract 上阅读了大量的帖子 但我无法让它从一个简单的图像中读取文本 它返回一个空字符串 这是图像 我尝试过缩放它 灰度化它 调整对比度 阈值 模糊 以及其他帖子中所说的一切 但我的问题是我不知道 OCR 想要更好地工作
  • Java 相当于 Python 的 urllib.urlencode(基于 HashMap 的 UrlEncode)

    From https stackoverflow com questions 2018026 should i use urllib or urllib2 2018103 2018103 Java 中 Python 的 urllib url
  • 用户的完整 UNIX 用户名

    想知道您是否知道是否有一种巧妙的方法可以从 shell 获取完整的用户名 示例 如果我的 UNIX 用户名是 froyo 那么我想获取我的全名 在本例中 如系统中注册的那样 froyo Abhishek Pratap Finger 命令可以
  • 需要一个从 yaml 文件中提取内容并输出为 csv 文件的脚本

    我对 python 很陌生 但我很感激您帮助指导我创建一个简单的脚本 该脚本读取一堆 yaml 文件 同一目录中的大约 300 个文件 并从 yaml 文件并将其转换为 csv yaml 文件中内容的示例 code 9313 degrees
  • 将字典写入 csv 时遇到问题,其中键作为标题,值作为列

    我有一本字典 看起来像 mydict foo 1 2 bar 3 4 asdf 5 6 我正在尝试将其写入 CSV 文件 使其看起来像 foo bar asdf 1 3 5 2 4 6 我花了最后一个小时寻找解决方案 我发现的最接近的解决方

随机推荐

  • sql盲注

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 sql注入 盲注 前言 一 什么是盲注 二 步骤示例 1 测试注入点 2 测所在数据库长度 3 利用ASCII码猜当前数据库名 4 利用ASCII码查询表名 5 利用ASCI
  • Nginx的TCP运行时健康检查

    Nginx的TCP运行时健康检查 本章介绍如何配置TCP的运行状况检查 介绍 先决条件 被动TCP运行状况检查 服务器缓慢启动 活动TCP运行状况检查 微调TCP运行状况检查 匹配 配置块 介绍 NGINX和NGINX Plus可以持续测试
  • ORACLE如何停止一个JOB

    ORACLE如何停止一个JOB 1 相关表 视图 dba jobs all jobs user jobs 包含登录用户所有的JOB信息 dba jobs running 包含正在运行job相关信息 注意 须使用oracle的sys用户登录到
  • Matplotlib中plot和scatter以及subplot和add_axes区别

    之前在做练习时一直有两种方法 plot和scatter一直傻傻分不清 加上这次对matplotlib深入了解 可以清楚的去做判断 plot用法 from matplotlib import pyplot as plt plt plot 5
  • redis安装+主从+哨兵模式和坑。

    一 安装 版本 3 2 11 1 解压 2 进入解压后的目录 执行 make 3 执行 make install 这一步需要root权限的用户执行 注 不使用root用户安装时 在make install 后添加PREFIX usr loc
  • 跨境电商如何更好地备战销售旺季?

    跨境电商秋促来临 不知道各位卖家是否做好准备了呢 据外媒报道 TikTok Shop于近日开启了年度最大规模的黑五大促 而为了抢占旺季流量 继周二亚马逊宣布将于10月10日至11日举办第二届 Prime Big Deal Days 大促后
  • Unity—事件

    每日一句 我见青山多妩媚 料青山见我应如是 目录 事件 委托和事件的关系 为什么使用委托类型来声明事件 为什么事件是基于委托的 事件的定义 事件的核心功能 事件和事件模型 如何自定义事件 事件 委托和事件的关系 事件是委托类型字段的包装器
  • 【AI 绘画】 MidJourney 入门、参数解析、进阶玩法、变现指南、资料包

    AI 绘画 MidJourney 入门 参数解析 进阶玩法 变现指南 资料包 ai绘画 视频文件 网易订阅
  • windows子系统启动ubuntu“另一个程序正在使用此文件,进程无法访问”

    背景 问题 磁盘整理后重启 WSL无法启动 提示 另一个程序正在使用此文件 进程无法访问 解决 重启和资源管理清理 一天都无法解决 碰巧用命令行重启 还是true false的两行提示 不确定成功没 重启居然就能打开ubuntu了 管理员身
  • c++生成二维码

    vs2010编译好的qrencode库 http files cnblogs com files verstin qrencode rar 版本是3 4 4 编译方法参考 http blog csdn net liyuanbhu artic
  • c语言实现两个值互换

    include
  • C语言-运算符优先级

    规律 1 C语言中只有一个三目运算符 2 所有双目运算符中只有赋值运算符的结合方向是从右往左 3 对于优先级 算术运算符 gt 关系运算符 gt 逻辑运算符 gt 赋值运算符 逻辑运算符中 逻辑非 除外 4 同一优先级看结合方向 优先级 运
  • npm install报错ERR code ETIMEDOUT的解决办法

    将 npm 改为 淘宝镜像即可 1 查看npm镜像设置 npm config get registry 2 将npm设置为淘宝镜像 npm config set registry https registry npm taobao org
  • git切换到tag中

    1 首先查看tag列表 tag以BJ 20230904为例 git tag 2 切换到想查看的tag分支 新创建一个本地分支 git checkout b tag BJ 20230904 BJ 20230904 注 tag BJ 20230
  • mysql笔记-mysql常用操作

    目录 一 中文汉字按照拼音首字母排序 二 case when then else end语法的使用 三 取两表并集 四 MySql8导入数据时insert插入数据慢 五 查看bin log日志 六 MySql常用运算符和函数 七 SQL语句
  • 【机器学习】机器学习简介

    一 定义 机器学习 Machine Learning ML 是一门多领域交叉学科 涉及概率论 统计学 逼近论 凸分析 算法复杂度理论等多门学科 专门研究计算机怎样模拟或实现人类的学习行为 以获取新的知识或技能 重新组织已有的知识结构使之不断
  • 开发者的Java测试用例浅析

    前段时间 在项目组里做了一点 java的 测试用例 虽然没有全自动化 也完成了半自动化的测试 比如 针对接口的测试 提供服务的测试等 都不需要启动服务 也不需要接口准备好 我们只需要知道输入输出 便可以进行testcase的编写 这样很方便
  • Failed to find Platform SDK with path: platforms;android-P

    坑大了 接收别人写的代码 clone下来的代码 run以后报Failed to find Platform SDK with path platforms android P这样的错误 当时一脸懵逼 最后全局搜索一下 Ctrl shift
  • STM32 电机教程 15 - BLDC 速度环内嵌电流环

    前言 无刷直流 Brushless Direct Current BLDC 电机是一种正快速普及的电机类型 它可在家用电器 汽车 航空航天 消费品 医疗 工业自动化设备和仪器等行业中使用 正如名称指出的那样 BLDC 电机不用电刷来换向 而
  • python中的requests,response.text与response.content及其编码

    文章目录 response的属性 1 response status code 2 response text 3 response content 4 response encoding 5 response apparent encod