小编典典

_, params = cgi.parse_header('text/html; charset=utf-8')

print params['charset'] # -> utf-8

或使用响应对象:

response = urllib2.urlopen('http://example.com')

response_encoding = response.headers.getparam('charset')

# or in Python 3: response.headers.get_content_charset(default)

通常,服务器可能会说谎或根本不报告编码(默认取决于内容类型),或者可能在响应正文中指定编码,例如html文档中的元素或xml文档的xml声明中的元素。作为最后的选择,可以从内容本身猜测编码。

您可以requests用来获取Unicode文本:

import requests # pip install requests

r = requests.get(url)

unicode_str = r.text # may use `chardet` to auto-detect encoding

或BeautifulSoup解析html(并转换为Unicode作为副作用):

from bs4 import BeautifulSoup # pip install beautifulsoup4

soup = BeautifulSoup(urllib2.urlopen(url)) # may use `cchardet` for speed

# ...

from bs4 import UnicodeDammit

dammit = UnicodeDammit(b"Sacr\xc3\xa9 bleu!")

print(dammit.unicode_markup)

# -> Sacré bleu!

print(dammit.original_encoding)

# -> utf-8

2021-01-20

python获取编码方式_在Python中获取HTTP响应的字符集/编码的好方法相关推荐

  1. python代码写入方式_【Python 1-17】Python手把手教程之——文件的读写以及I/O操作...

    作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 从文件中读取数据 文本文件可存储的数据量很多,每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序来说尤其 如 ...

  2. java 获取文章关键词_在文章中获取关键字

    首先需要的jar包 下载apache的lucene-core-3.6.2.jar,lucene-highlighter-3.6.2.jar,lucene-memory-3.6.2.jar,lucene ...

  3. vue 获取id元素_.vue组件中获取DOM元素问题

    一.问题引入 原项目把一块内容直接写在了模块中(浏览器显示的一整个页面),现在想把它提成一个单独组件,而且把其中使用document.getElementById('id')改为ref获取元素的形式. ...

  4. 中文件编码方式_一文解开java中字符串编码的小秘密

    简介:在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用. Unicode的发展史 ...

  5. python时间序列因果检验_用python做时间序列预测八:Granger causality test(格兰杰因果检验)...

    如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...

  6. Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

    一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...

  7. python时间序列因果检验_用python做时间序列预测8:Granger causality test(格兰杰因果检验)...

    如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验). Granger causality test的思想 如果使用时间序列X和Y的历史值来 ...

  8. 获取存储过程返回值及代码中获取返回值

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  9. 获取存储过程返回值及代码中获取返回值(转)

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

最新文章

  1. vs内存泄露检测方法
  2. Vim改装编辑器的安装与使用简介
  3. [转载]对复旦食堂的印象
  4. Bicoloring
  5. python jieba库用法
  6. HTML5 Placeholder实现input背景文字提示效果
  7. Android—数据持久化、SP源码
  8. java基础入门数据类型,JAVA基础教程:JAVA的基本数据类型及介绍
  9. 《敏捷软件开发-原则、方法与实践》-Robert C. Martin
  10. ES6对于数组的扩展
  11. magic winmail邮件服务器,使用magic winmail server轻松架设邮件服务器(三)_邮件服务器...
  12. 算法笔记(二)抽牌法产生随机全排列
  13. AForge.net获取摄像头
  14. 软件测试的功能点理解
  15. boll指标详解教了哪些窍门BOLL指标详解之注意事项是什么
  16. 如何用LambdaWrapper去实现去重查询
  17. HttpClient数据传输的编码方式
  18. sklearn之train_test_split()函数各参数含义
  19. 在元宇宙的概念之下,互联网与数字经济不再是水火不容的存在
  20. nfs挂载和取消挂载命令

热门文章

  1. 图纸上标注的是实际尺寸吗_CAD或工程图上与实际尺寸比例公式有?
  2. Vmware安装迷你版的 Centos6 并配置 Nat 模式可访问外网
  3. VMware虚拟机NAT模式下连不上网
  4. 超级计算机控制人的电影,想知道这部电影的名字,讲述通过超级计算机进入人脑.回到过去.其中有个老教授死亡留下一封信给给主角。...
  5. java 跳格子_HDU 1208 跳格子题(很经典,可以有很多变形)
  6. UNP编程:31---名字与地址转换之(服务解析函数:getservbyname()、getservbyport()、struct  servent)
  7. MATLAB多方法车牌识别系统(bp+模板+GUI)
  8. Linux 学习“安装CentOS与多重引导小技巧”
  9. openwrt U盘安装php,db120电信猫刷机openwrt15.05.1系统,建站软件调试、u盘全过程
  10. 加载网络图片Glide+圆角 fragment的动态添加 底部图标点击选中