解决Python发送Http请求时,中文乱码的问题
作者:yuth 发布时间:2021-02-02 05:11:39
标签:Python,Http,中文,乱码
解决方法:
先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'})
来源:https://blog.csdn.net/yuhentian/article/details/78163444


猜你喜欢
- 第一步 关闭代码拼写检查setting–>Inspections–>Spelling–>Typo,取消勾选:第二步 关闭代
- 一.摘要做接口自动化测试时,常常需要使用python发送一些json内容的接口报文,如果使用urlencode对内容进行编码解析并发送请求,
- 一、背景有些情况下,我们面对实时更新的数据,希望能够在一个窗口中可视化出来,并且能够实时更新,方便我们观察数据的变化,从而进行数据分析,例如
- MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值
- 目录普通分页查询如何优化偏移量大采用id限定方式优化数据量大问题普通分页查询当我们在日常工作中遇到大数据查询的时候,第一反应就是使用分页查询
- 本文实例讲述了python中bisect模块用法,分享给大家供大家参考。具体方法分析如下:这个模块只有几个函数,一旦决定使用二分搜索时,立马
- requests库简介requests 库是一个常用的用于 http 请求的模块,它使用 python 语言编写,可以方便的对网页进行爬取,
- 本文实例为大家分享了python xlsxwriter创建excel图表的具体代码,供大家参考,具体内容如#coding=utf-8 imp
- WITH ROLLUP 在生成包含小计和合计的报表时,ROLLUP 运算符很有用。ROLLUP 运算符生成的结果集类似于 CUBE 运算符所
- 如下所示:# coding = utf-8import requestsimport jsonhost = "http://47.
- 在Python的学习过程中,肯定会遇到很多安装模块的地方,可以使用easy_install安装,但是easy_install相对于pip而言
- 一个MDB数据库就是硬盘上的另外一个文件,所以,像其他文件一样,它也将遇到相同的文件访问许可问题。这个问题的意思是为了读取(和写入,就像您将
- 最近学习了一点python,那就试着做一做简单的编程练习。 首先是这个编程的指导图,如下:对的,类似一个简单区块链的模拟。 代码如下:cla
- 不想每次都要去查execl,想更方便点,更快一点。通俗点思路:点击exe,Python 自动监控剪贴板的内容,然后正则取出IP,接着根据IP
- 前言由于数据库每天都用来存储越来越多的信息,因此这些也是每个Django项目中的关键组件。 因此了解它们的工作方式非常重要。当然,我无法解释
- Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。外键涉及到两个表,其中一
- 1.安装pymysql进入cmd,输入 pip install pymysql: 2.数据库建表在数据库中,建立一个简单的表,如图: 3.简
- 函数重载的替代方法-伪重载,下面看一个具体的实例代码。<? php//函数重载的替代方法-伪重载////确实,在PHP中没有函数重载这
- 描述返回表达式,此表达式已被格式化为日期或时间。语法FormatDateTime(Date[, NamedFormat])FormatDat
- 一、使用selenium前?1.安装seleniumpip install Selenium2.安装浏览器驱动Chrome驱动文件下载:点击