Python2和Python3中urllib库中urlencode的使用注意事项


Posted in Python onNovember 26, 2018

前言

在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包位置有些不同。

对于Python2

Python2中提供了urllib和urllib2两个模块。

urlencode方法所在位置为:

urllib.urlencode(values) # 其中values为所需要编码的数据,并且只能为字典

例如模拟登陆CSDN网站,示例程序如下

import urllib2
values = {"username":"962457839@qq.com","password":"XXXX"}
data = urllib.urlencode(values) 
url = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()

对于Python3

Python3中也有urllib和urllib3两个库,其中urllib几乎是Python2中urllib和urllib2两个模块的集合,所以我们最常用的urllib模块,而urllib3则作为一个拓展模块使用。

urlencode方法所在位置

urllib.parse.urlencode(values)

例如模拟登陆CSDN网站,示例程序如下:

from urllib import request
from urllib import parse
from urllib.request import urlopen
values = {'username': '962457839@qq.com', 'password': 'XXXX'}
data = parse.urlencode(values).encode('utf-8') # 提交类型不能为str,需要为byte类型
url = 'https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
request = request.Request(url, data)
response = urlopen(request)
print(response.read().decode())

ps:修复在python3中import winrandom错误问题

问题:在windows的python3使用PyCrypto出现ImportError: No module named 'winrandom'错误

处理:修改python3安装目录下的  lib/Crypto/Random/OSRNG/nt.py 文件中找到

import winrandom

修改为

from Crypto.Random.OSRNG import winrandom

总结

以上所述是小编给大家介绍的Python2和Python3中urllib库中urlencode的使用注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python中的错误处理
Apr 10 Python
详解 Python 读写XML文件的实例
Aug 02 Python
python中如何使用正则表达式的集合字符示例
Oct 09 Python
Python实现的单向循环链表功能示例
Nov 10 Python
快速了解python leveldb
Jan 18 Python
python pandas dataframe 行列选择,切片操作方法
Apr 10 Python
Python魔法方法详解
Feb 13 Python
Python 列表去重去除空字符的例子
Jul 20 Python
用Python绘制漫步图实例讲解
Feb 26 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
Python如何使用input函数获取输入
Aug 06 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 #Python
Django2.1.3 中间件使用详解
Nov 26 #Python
django+echart绘制曲线图的方法示例
Nov 26 #Python
详解配置Django的Celery异步之路踩坑
Nov 25 #Python
利用Python如何实现一个小说网站雏形
Nov 23 #Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 #Python
python+selenium实现自动抢票功能实例代码
Nov 23 #Python
You might like
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
php中jpgraph类库的使用介绍
2013/08/08 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
python线程锁(thread)学习示例
2013/12/04 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
Python 加密与解密小结
2018/12/06 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
学习Django知识点分享
2019/09/11 Python
softmax及python实现过程解析
2019/09/30 Python
Python设计密码强度校验程序
2020/07/30 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
工业学校毕业生自荐信范文
2014/01/03 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
政协委员个人总结
2015/03/03 职场文书
护士旷工检讨书
2015/08/15 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python