解决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获取远程文件大小的函数代码分享
May 13 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
Python Socket编程之多线程聊天室
Jul 28 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
python把转列表为集合的方法
Jun 28 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 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 include加载文件两种方式效率比较
2010/08/08 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
python中reduce()函数的使用方法示例
2017/09/29 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
物流创业计划书
2014/02/01 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
请假条怎么写
2014/04/10 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
Python requests用法和django后台处理详解
2022/03/19 Python