Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【经验总结】Python3 Requests 模块请求内容包含中文报错的解决办法

【经验总结】Python3 Requests 模块请求内容包含中文报错的解决办法

作者头像
TeamsSix
发布于 2020-02-18 08:55:35
发布于 2020-02-18 08:55:35
1.5K04
代码可运行
举报
运行总次数:4
代码可运行

0x00 前言

最近在写一个爬虫代码,里面需要使用 get 传参中文,但是如果直接使用中文而不对其编码的话,程序将会报错。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 38-39: ordinal not in range(256)

0x01 网上的一些解决办法

参考网上的解决办法,比如下面的几种办法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1、在中文后加上".encode('GBK')"
2、在文件头部加上"#coding = utf-8"
3、在中文后加上".encode('utf-8')"

这几种方法在我这里都行不通,抓包也可以看到数据包里的中文并不是我们想象的经过 URL 编码的字符。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /test=b'%5Cxe6%5Cxb5%5Cx8b%5Cxe8%5Cxaf%5Cx95' HTTP/1.1

0x02 可行的办法

最后才意识到,其实并不需要对中文进行 GBK、UTF-8 转码,而应该对其进行 URL 编码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from urllib.parse import quote
text = quote("测试", 'utf-8')

利用 quote 函数对 “测试” 进行 URL 编码后,再次抓包可以看到中文部分已经是 URL 格式了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET /test=%E6%B5%8B%E8%AF%95 HTTP/1.1

此时,程序也不再报错,可以顺利执行了。

本文原文地址:https://www.teamssix.com/year/200206-202951.html 参考文章:https://blog.csdn.net/qq_33876553/article/details/79730246

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python常见问题 - requests请求参数包含中文报错:UnicodeEncodeError: 'latin-1' codec can't encode characters in posit
在做接口自动化的时候,Excel作为数据驱动,里面存了中文,通过第三方库读取中文当请求参数传入 requests.post() 里面,就会报错
小菠萝测试笔记
2020/06/09
5.9K0
python2.7 的中文编码处理,解决UnicodeEncodeError: 'ascii' codec can't encode character 问题
最近业务中需要用 Python 写一些脚本。尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 为了解决问题,我花时间去研究了一下 Python 的字符编码处理。网上也有不少文章讲 Python 的字符编码,但是我看过一遍,觉得自己可以讲得
用户1214487
2018/05/28
16.4K0
Python中文字符转义报错
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 19-31: ordinal not in range(128) 在Python中重设UTF-8编码输出 在脚本中加入 import sys import codecs sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach()) UnicodeEncodeError: ‘latin-1’ codec can’t
用户1316967
2022/01/18
1.2K0
python requests 一种通过编码的反爬虫机制
简介:遇到一个反爬虫机制,该网页为gbk编码网页,但是请求参数中,部分请求使用gbk编码,部分请求使用utf8编码,还设置了一些不进行编码的安全字符,在爬取的过程中形成了阻碍。
forxtz
2021/03/19
7220
网络请求模块(2)
就像百度翻译翻译一样他是一个动态加载数据,有道翻译是 ajax 请求,真正的 URL 在 XHR 里
设计者
2022/12/20
5420
解决SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xa3 in position
在Python编程过程中,我们有时会遇到SyntaxError错误,特别是在处理文本数据时。其中一个常见的SyntaxError错误是​​(unicode error) 'utf-8' codec can't decode byte 0xa3 in position 15: invalid start​​。这个错误表示Python无法解码特定字节。 这篇博客将为你介绍这个错误的原因,并提供一些可能的解决方案。
大盘鸡拌面
2023/10/30
3.8K0
Python写入文件报错‘gbk’ codec can’t encode character的解决办法
使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 这个问题。 网络上有很多类似的文件讲述如何解决这个问题,但是无非就是encode,decode相关的,这是导致该问题出现的真正原因吗?不是的。 很多时候,我们使用了decode和encode,试遍了各种编码,utf8,utf-8,gbk,gb2312等等,该有的编码都试遍了,可是编译的时候仍然出现: UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position XXX。 
翎野君
2023/06/04
3.1K0
[Python3填坑之旅]一·urllib模块网页爬虫访问中文网址出错
正在学习网页爬虫,用的Python3+urllib模块,当遇到链接里有中文字符的时候总是报错。之前以为是Python编码的问题,不断去尝试不同的编码去encode与decode,可以问题总是解决不了,没有办法继续查阅资料,最后发现其实解决方法特别简单。
小宋是呢
2019/06/27
2.1K0
MySQL字符集终极指南--进阶篇
以下配置项是Linux系统的本地化(localization)设置,用于控制系统在不同方面如何呈现和处理数据。下面是每个配置项的解释:
DBA成江东
2023/08/14
2.4K0
MySQL字符集终极指南--进阶篇
【Python爬虫】一招搞定发送中文HTTP请求头
有时需要将HTTP请求头的值设为中文,但如果直接设成中文,会抛出异常,例如,下面的代码为Chinese请求头设置了中文。
蒙娜丽宁
2021/03/11
1.8K0
requests模块报错:Use body.encode('utf-8') if you want to send it encoded in UTF-8.
在做 企业向微信用户个人付款  功能时,调用第三方sdk,在 进行 requests 的post请求时,
用户1558882
2018/10/11
2.3K0
解决java的http请求库dongliu.requests请求结果中文乱码的问题
在前几天接到一个需求,需要爬取某个网站上的一些数据,并且经过整理后将爬取到的数据写入到数据库内。
LCyee
2020/08/05
1.4K0
解决java的http请求库dongliu.requests请求结果中文乱码的问题
MSSQL高权限注入写马至中文路径
下班回家的路上拿着手机翻看“潇湘信安技术交流群”聊天记录,看到@Bob、@goddemon两个老哥提到的问题挺感兴趣,正好前几天也帮朋友测试过类似问题,本地有这样的测试环境,所以回到家中就帮着给测试了下,并写了这篇记录文章,过程还是挺有意思的。
潇湘信安
2021/07/01
1.5K0
python3 成长之路(1) 动力才是
看了很多网上的资料  然而很多东西用的都是python 2.7 很多人还是劝使用python3来做
py3study
2020/01/03
5400
iis伪静态中文url出现乱码的解决办法
首先要看下你安装的是IIS rewrite_2.0还是ISAPI_Rewrite 3.x的伪静态插件。
会长君
2023/04/26
2.4K0
请求模块urllib的基本使用
✅作者简介:大家好我是hacker707,大家可以叫我hacker 📃个人主页:hacker707的csdn博客 🔥系列专栏:python爬虫 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站 💖在实现网络爬虫的爬取工作时,就必须使用网络请求,只有进行了网络请求才可以对响应结果中的数据进行提取,urllib模块是python自带的网络请求模块,无需安装,导入即可使用。下面将介绍如果使用python中的urllib模块实现网络请求💖 🥳请求模块urllib的基本使用🥳 urllib的子模块
hacker707
2022/11/27
9690
请求模块urllib的基本使用
Python之中文乱码解决方案
在Python2.X及Python3有时经常碰到各种中文乱码的情况,这里整理了相关各种情况汇总。
苦叶子
2023/06/09
1.6K0
Python之中文乱码解决方案
你还在为Python中文乱码而感到烦恼?今天老司机给你讲讲!
有没有遇到过这样的问题,读取文件被提示“UnicodeDecodeError”、爬取网页得到一堆乱码,其实这些都是编码惹的祸,如果不能真正理解编码的问题所在,就像开车没有带导航,游泳没有带有度数的眼镜。如果你正在为此而 头疼,不妨来看看这篇文章,里面或许有你要的答案。
QQ1622479435
2018/07/21
1.3K0
python字符串编码及乱码解决方案
http://blog.csdn.net/pipisorry/article/details/44136297
全栈程序员站长
2022/09/06
2.3K0
python字符串编码及乱码解决方案
sublime Text与python3的中文编码错误解决办法
但是在windows上面运行代码正常。 原因是因为:linux系统语言导致的。 查看了一下系统环境编码
超蛋lhy
2018/12/06
8530
推荐阅读
相关推荐
Python常见问题 - requests请求参数包含中文报错:UnicodeEncodeError: 'latin-1' codec can't encode characters in posit
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档