解决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实现的栈(Stack)
Jan 26 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
快速排序的四种python实现(推荐)
Apr 03 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Python pandas RFM模型应用实例详解
Nov 20 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 Python
python如何将图片转换素描画
Sep 08 Python
python中的插入排序的简单用法
Jan 19 Python
深入理解python协程
Jun 15 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学习之简单计算器实现代码
2011/06/09 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP中文编码小技巧
2014/12/25 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
turn.js异步加载实现翻书效果
2019/07/25 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
jQuery实现购物车全功能
2021/01/11 jQuery
深入理解Python中装饰器的用法
2016/06/28 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
python实现简单的文字识别
2018/11/27 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
基于Python解密仿射密码
2019/10/21 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
python绘制趋势图的示例
2020/09/17 Python
长青弘远的面试题
2012/06/09 面试题
一名女生的自荐信
2013/12/08 职场文书
大学生的网络创业计划书
2013/12/26 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
物流专业求职计划书
2014/01/10 职场文书
本科毕业生求职信
2014/06/15 职场文书
公民授权委托书
2014/10/15 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript