【hacker的错误集】解决response.text获取中文乱码问题

简介: 在获取网页源代码时如果不指定页面所对应的编码格式就会出现中文是乱码的情况,这时需要找到页面所所对应的编码格式

79b67f4e7ae14fa0ae5c599e74fcd6bf.jpg


错误内容



直接使用以下代码获取内容


import requests
# url = '你的url地址'
url = 'http://www.piaofang.biz/'
response = requests.get(url)
print(response.text)


会出现中文是乱码的情况:


63b059de930f493ea90d871561e9f139.png


错误分析



在获取网页源代码时如果不指定页面所对应的编码格式就会出现中文是乱码的情况,这时需要找到页面所所对应的编码格式


居然:怎么找页面所对应的编码格式啊

hacker:我来教你一种最简单的方法


在你对应的页面鼠标右键点击查看源代码,在源代码中按Ctrl+F查找快捷键搜索charset即可看到页面所对应的编码格式(是gbk就设置为gbk,是utf-8就设置为utf-8


117a0e6f80a146179f6103dbd64ef67e.png


解决方案



改正后的代码如下:


import requests
# url = '你的url地址'
url = 'http://www.piaofang.biz/'
response = requests.get(url)
response.encoding = 'gbk'
print(response.text)

89ff6781ee8b4700811dfa89e7bc8326.png


扩展知识(非常好用)



我们需要人为的去判断页面的编码格式,其实,我们有一个更智能的方法可以解决该问题,就是直接通过代码去获取当前页面的编码即可,代码如下:


import requests
# url = '你的url地址'
url = 'http://www.piaofang.biz/'
response = requests.get(url)
# apparent_encoding是从网页的响应内容分析编码的方式(更加intelligence智能)
response.encoding = response.apparent_encoding
print(response.text)

image.png


结束语🏆🏆🏆


🔥推荐一款模拟面试、刷题神器网站

点击链接注册即可

1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单

2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题

3、大厂笔试真题:字节跳动、美团、百度、腾讯…


相关文章
|
SQL 资源调度 数据库
数仓学习---14、大数据技术之DolphinScheduler
数仓学习---14、大数据技术之DolphinScheduler
|
Linux Docker Python
Alpine Linux详解
Alpine以其小巧、简单在docker容器中得到了广泛的应用。但是Alpine Linux使用了musl,可能和其他Linux发行版使用的glibc实现会有些不同。这里主要介绍了它的基础用法,但是足以满足日常运维需要。
15672 1
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的个人财务管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的个人财务管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
208 1
|
数据采集 存储 NoSQL
Redis 与 Scrapy:无缝集成的分布式爬虫技术
Redis 与 Scrapy:无缝集成的分布式爬虫技术
|
关系型数据库 MySQL
清理MySQL的binlog日志
清理MySQL的binlog日志
1550 0
|
Java Spring
【亲测有效完结bug】org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exce
【亲测有效完结bug】org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exce
1565 0
|
Python
PyCharm 设置作者信息
PyCharm 设置作者信息
2394 0
PyCharm 设置作者信息
|
Web App开发 缓存 安全
您的连接不是私密连接
您的连接不是私密连接
1656 0
您的连接不是私密连接
|
消息中间件 存储 安全
【Linux 系统】进程间通信(共享内存、消息队列、信号量)(下)
【Linux 系统】进程间通信(共享内存、消息队列、信号量)(下)
|
SpringCloudAlibaba Java 数据库
SpringCloud Alibaba微服务 -- Seata的原理和使用
SpringCloud Alibaba微服务 -- Seata的原理和使用