`

Python Requests编码识别Bug

 
阅读更多
Python+Requests编码识别Bug


>>> r = requests.get('http://cn.python-requests.org/en/latest/')
>>> r.headers['content-type']
'text/html'
>>> r.encoding
'ISO-8859-1'
>>> r.apparent_encoding
'utf-8'
>>> requests.utils.get_encodings_from_content(r.content)
['utf-8']

>>> r = requests.get('http://reader.360duzhe.com/2013_24/index.html')
>>> r.headers['content-type']
'text/html'
>>> r.encoding
'ISO-8859-1'
>>> r.apparent_encoding
'gb2312'
>>> requests.utils.get_encodings_from_content(r.content)
['gb2312']

终极解决办法:
if r.encoding == 'ISO-8859-1':
    encodings = requests.utils.get_encodings_from_content(r.content)
    if encodings:
        r.encoding = encodings[0]
    else:
        r.encoding = r.apparent_encoding
    r._content = r.content.decode(r.encoding, 'replace').encode('utf8', 'replace')


http://www.tuicool.com/articles/vEJzMv
分享到:
评论

相关推荐

    python requests模块及依赖包.zip

    在网络通信中,数据可能采用各种编码格式,`chardet`能自动识别这些编码,确保数据正确解码,避免乱码问题。 除了基础功能,`requests`还提供了许多高级特性: - **POST请求**:不仅可以GET数据,还可以POST数据,...

    python-requests离线包

    Python是requests库的基础,必须先安装Python环境才能使用requests。 2. `certifi-2019.9.11-py2.py3-none-any.whl`: certifi是一个包含受信任的SSL证书的库,用于验证HTTPS连接的安全性。此版本适用于Python 2和3...

    构建高效的python requests长连接池详解

    在Python的网络编程中,`requests`库是一个广泛使用的HTTP客户端库,因其简洁易用而深受开发者喜爱。本文将深入探讨如何构建高效的`requests`长连接池,这对于处理大量HTTP请求,尤其是涉及到频繁的API调用或者CDN...

    python requests官方中文文档( 高级用法 Requests 2.18.1 文档 )

    python requests官方中文文档,进阶用法。本文档覆盖了requests库的一些高级特性

    Python.Requests.Essentials.1784395412

    Learn how to integrate your applications seamlessly with web services using Python Requests About This Book A fast-paced guide that demonstrates the use of Python Requests with the help of examples ...

    Python Requests库 2.10.0 中文文档

    Python Requests 2.10.0 文档,自己排版了一下

    Python-为Python的requests添加asyncawait语法支持

    为了解决这个问题,开发者们通过各种方式将`requests`与Python的异步IO模型集成,使其能够利用`asyncio`库进行异步操作。本篇文章将深入探讨如何为`requests`添加`async/await`语法支持,以便在Python中实现高效的...

    Python Requests Essentials (2015)

    《Python Requests Essentials》是2015年出版的一本针对Python网络请求库Requests的专业书籍,由Rakesh Vidya Chandra和Bala Subrahmanyam Varanasi共同撰写,由Packt Publishing出版。这本书旨在帮助Python开发者从...

    Python Requests Essentials 无水印pdf

    Python Requests Essentials 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或...

    Python Requests Essentials高清带书签文字版

    《Python Requests Essentials》是一本深度探讨Python中Requests库的实用指南,它涵盖了使用Requests库进行网络请求的各种核心技术。Requests库是Python中广泛使用的HTTP客户端库,对于任何需要从Web抓取数据或者与...

    Python库 | requests_pkcs12-1.6-py2.py3-none-any.whl

    《Python库requests_pkcs12详解》 在Python的开发世界中,有一个强大的库叫做`requests`,它使得网络请求变得简单易用。然而,在处理需要使用PKCS#12证书的安全HTTPS通信时,`requests`原生并不支持。为了解决这个...

    Python Requests库详解

    接下来将对Python Requests库进行详细解释,同时以爬虫项目为背景,阐述如何应用Requests库进行网络请求、页面爬取、数据解析等操作。 首先,了解什么是网络爬虫(Web Crawler)是理解Python Requests库的重要前提...

    python+requests+pytest 接口自动化框架(8)

    python+requests+pytest+allure+yaml 一、数据类型处理 “${read_extract_data(tag_id)}” 替换成 110 二、DDT数据驱动封装 数据驱动可以利用 excel,csv,yaml 用excel,csv的缺点 1.数据类型难处理 2.调用函数不是...

    python requests-2.11.0

    Python的`requests`库是网络请求的一个强大工具,尤其在处理HTTP请求时极其方便。`requests-2.11.0`是这个库的一个版本,它包含了该版本的所有源代码和可能的文档。在这个版本中,我们可以深入学习`requests`库的...

    pythonrequests快速入门

    通过以上内容,我们已经了解了Python Requests库的基础用法,包括创建请求、发送请求、获取响应内容、处理编码、处理JSON数据、流式处理文件以及发送自定义的HTTP头部信息。这些是网络编程中常用的操作,熟练掌握...

    python requests 包

    **Python Requests 包详解** `requests` 是 Python 中一个非常重要的第三方库,它为开发者提供了简单易用的接口,用于发送 HTTP 请求。这个库由 Kenneth Reitz 设计,旨在让网络编程变得更加简单和人性化。在本文中...

    Python requests爬虫实例

    Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。Python requests爬虫实例

    Python requests 库介绍

    python Python requests 库介绍

    Python-curlify将Pythonrequests的请求对象变成curl命令的库

    Python-curlify是一个非常实用的库,它允许开发者将Python requests库中的请求转换为curl命令。这个库的主要目的是为了方便调试和理解HTTP请求的具体构造,因为curl命令在命令行环境中非常常见,且易于理解和分享。...

Global site tag (gtag.js) - Google Analytics