python3 urllib3和urllib,python3的urllib3和requests及问题解决
1 版本变化
Python2 之前使用 urllib2 库,在版本升级后出现问题,因为在3版本中库进行了整合,具体变动如下:
Py3.x:
删除了Urllin2库,统一更改为Urllib
Urllib库
变化:
在Pytho2.x中使用import urllib2——-对应的,在Python3.x中会使用import urllib.request,urllib.error。
在Pytho2.x中使用import urllib——-对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse。
在Pytho2.x中使用import urlparse——-对应的,在Python3.x中会使用import urllib.parse。
在Pytho2.x中使用import urlopen——-对应的,在Python3.x中会使用import urllib.request.urlopen。
在Pytho2.x中使用import urlencode——-对应的,在Python3.x中会使用import urllib.parse.urlencode。
在Pytho2.x中使用import urllib.quote——-对应的,在Python3.x中会使用import urllib.request.quote。
在Pytho2.x中使用cookielib.CookieJar——-对应的,在Python3.x中会使用http.CookieJar。
在Pytho2.x中使用urllib2.Request——-对应的,在Python3.x中会使用urllib.request.Request.
2 问题解决
在进行一个post请求时,postman 里面可以正常请求到数据,但是一模一样放到python里面就不行了,后面通过抓包发现了问题。
部分代码如下:
formdata = {
"analyzer": "ik_smart",
"text": text
}
data = parse.urlencode(formdata).encode(encoding='UTF8')
req = request.Request(url, headers=self.headers, data=data)
res = request.urlopen(req)
res = res.read()
以上方式会将json数据形成analyzer=ik_smart的形式,无法让接口正常解析。
修改为如下代码:
data = json.dumps(formdata)
data = bytes(data, "utf8")
req = request.Request(url, headers=self.headers, data=data)
res = request.urlopen(req)
res = res.read()
可以正常进行访问。
注:data = bytes(data, "utf8") 需要转成bytes,否则会报错。
python3 urllib3和urllib,python3的urllib3和requests及问题解决相关推荐
- python 3.7.4 shell_centos7上Virtualenv从python3.4升级到Python3.7.4
目前我的虚拟环境python版本是3.4, 想升级到最新的3.7.4, 总结步骤如下: 首先激活当前env_py3环境, 并导出当前依赖包: Shell workon env_py3 pip fre ...
- python3.6手册中文版-python3.6文档中文版
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 新pythonmalloc环境变量现在可用于调试解释器内存分配与访问错误. 标准库 ...
- centos7 python3安装numpy_Centos7安装python3、numpy、scipy、matplotlib、pandas等
centos 7 已经自带 python 2.7.15,这里需要安装 python 3 [root@pwm]# python Python 2.7.15 |Anaconda, Inc.| (defau ...
- python3 库pandas写入csv格式文件出现中文乱码问题解决方法
python3 库pandas写入csv格式文件出现中文乱码问题解决方法 参考文章: (1)python3 库pandas写入csv格式文件出现中文乱码问题解决方法 (2)https://www.cn ...
- python3安装-Centos 安装 Python3
Centos 的官方源默认是没有python3,所以不能直接yum安装. 下面介绍几个常用的方法在Centos下安装Python3. 一.epel 源安装 首先安装epel源: yum install ...
- centos安装python3小白_Centos7 安装Python3
Centos7 安装Python3 一.linux安装Python3 1.安装相关依赖 [root@3f9 ~]# yum -y install zlib-devel bzip2-devel open ...
- ubuntu虚拟机apt报错:No module named ‘uaclient‘(替换所有的python3为/usr/bin/python3)xftp、xshell不能连接
从ly那拷来虚拟机就出现这个问题了,而且xftp.xshell也不能连上 参考解决办法:ModuleNotFoundError: No module named 'uaclient' root@ubu ...
- python3.6.4_在ubuntu中将python3.4升级到python3.6中断pip
我试图在我的机器上安装python3.6后,我目前有python3.4.然而,安装后尝试下python3.6运行pip给我的错误:在ubuntu中将python3.4升级到python3.6中断pip ...
- ubuntu18.04安装python3.7并将python3指向python3.7
ubuntu18.04系统默认装了三个版本的python,如下: ubuntu18.04安装python3.7并将python3指向python3.7 参考此篇文章:https://blog.csdn ...
最新文章
- python实现选择排序
- HTML5标签的语义认知和理解
- OpenCV3.2+VS2013+Tesseract3.02.02配置
- ftpwebrequest 无法加载或初始化请求的服务提供程序_jvm之类加载机制
- 【转】浏览器缓存机制
- ftp ---- vsftpd安装卸载
- Linux内核写入s3c2440,Linux空板的系统写入
- Android开源项目:微信打飞机游戏源代码
- windows卸载服务
- 简单的喜欢最长远 平凡中的陪伴最心安 懂你的人最温暖
- 容器云系列之容器技术相关概念介绍
- ZOJ - Triathlon(线性规划+半平面交)
- 你看到的都是错的!——虚拟化技术的真相
- Webservice-2
- 18 - java基初 数组介绍 冒泡排序
- 与、或、非、异或,运算符巩固
- OEM的意思是什么?(收藏)
- 单位网站老是被劫持跳转到菠菜网站怎么办
- Learning a Similarity Metric Discriminatively with Application to Face Verification
- 江西省大学计算机专业,江西最好考的2所大学!计算机、财务专业省排名第三,力压一本!...