解决Python发送Http请求时,中文乱码的问题


Posted in Python onApril 30, 2020

解决方法:

先encode再quote。

原理:

msg.encode('utf-8')是解决中文乱码问题。

quote():假如URL的 name 或者 value 值中有『&』、『%』或者『=』等符号,就会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码,quote()就是对参数字符串中的『&=%』等符号进行编码。

例子:

# -*- coding: UTF-8 -*-
# python2.7
from urllib import quote
import requests
 
def httpGet(sUrl):
 header = {}
 try:
  response=requests.get(sUrl, headers=header)
  sText = response.text
  return sText
 except BaseException:
  print BaseException
   
def demo(msg):
 sEncodeMsg = quote(msg.encode('utf-8'))
 url = 'http://www.youdao.com/w/eng/' + sEncodeMsg
 print httpGet (url)
 
demo(u'90%的数据')

补充知识:python 用Request payload 翻页获取不同的返回值

我就废话不多说啦,直接看代码吧!

headers={'Accept':'*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Ajax-method': 'GetPageJYXTXXFB',
'Connection': 'keep-alive',
'Content-Length': '129',
'Content-Type': 'text/plain; charset=UTF-8',
'Cookie': 'ASP.NET_SessionId=vdl5ooxkjkazwszgvj5woewh',
'Host': 'ggzy.yibin.gov.cn',
'Origin': 'http://ggzy.yibin.gov.cn',
'Referer': 'http://ggzy.yibin.gov.cn/Jyweb/ZhaoBaoGongGaoList.aspx?Type=%e5%bb%ba%e8%ae%be%e5%b7%a5%e7%a8%8b&SubType=260',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36',
}      #模仿浏览器 
 payload=[i*15,15,"FBSJ DESC","XMMC","","XXLB ={0} AND XTType={1} AND ZBFS != 2","[{\"pvalue\":\"260\"},{\"pvalue\":\"1\"}]"] #Request payload里面的信息
 
 rsp=requests.post(url1,data=json.dumps(payload),headers = headers) #用Request payload里面的信息发送post请求
 data_a=rsp.content 

def parse_js(expr):
 obj = eval(expr, type('Dummy', (dict,), dict(__getitem__=lambda s, n: n))())
 return obj

list_a = parse_js(data_a)    # 把 json字典({KEY:'value'}) 转换为python的字典({'key':'value'})

以上这篇解决Python发送Http请求时,中文乱码的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
在Python中调用ggplot的三种方法
Apr 08 Python
python判断给定的字符串是否是有效日期的方法
May 13 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
浅析Python数据处理
May 02 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
python二进制读写及特殊码同步实现详解
Oct 11 Python
Python接口测试get请求过程详解
Feb 28 Python
python可迭代对象去重实例
May 15 Python
Pandas读取csv时如何设置列名
Jun 02 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
Python控制台输出俄罗斯方块移动和旋转功能
Apr 18 Python
Pytorch高阶OP操作where,gather原理
Apr 30 #Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 #Python
Python闭包与装饰器原理及实例解析
Apr 30 #Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 #Python
Pycharm连接远程服务器过程图解
Apr 30 #Python
python3发送request请求及查看返回结果实例
Apr 30 #Python
python获取响应某个字段值的3种实现方法
Apr 30 #Python
You might like
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
初识Node.js
2015/03/20 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
Python中subprocess模块用法实例详解
2015/05/20 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
Python 中@property的用法详解
2020/01/15 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
Linux操作面试题
2012/05/16 面试题
《云雀的心愿》教学反思
2014/02/25 职场文书
学习型班组申报材料
2014/05/31 职场文书
民事答辩状范本
2015/05/21 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
《开国大典》教学反思
2016/02/16 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书