解决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 pickle模块用法实例分析
May 27 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
使用Python对Csv文件操作实例代码
May 12 Python
python实现K最近邻算法
Jan 29 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
Python语言快速上手学习方法
Dec 14 Python
Python3多线程基础知识点
Feb 19 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Python必须了解的35个关键词
Jul 16 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
如何解决.cuda()加载用时很长的问题
May 24 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
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
python抓取网页中的图片示例
2014/02/28 Python
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python实现XML解析的方法解析
2019/11/16 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
查看keras的默认backend实现方式
2020/06/19 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
给排水工程师岗位职责
2013/11/21 职场文书
家长给孩子的评语
2014/01/30 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
环保公益广告语
2014/03/13 职场文书
学雷锋月活动总结
2014/04/25 职场文书
平面设计专业求职信
2014/08/09 职场文书
小学假期安全广播稿
2014/09/28 职场文书
三八妇女节标语
2014/10/09 职场文书
童年读书笔记
2015/06/26 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python