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字符串处理之count()方法的使用
May 18 Python
在Python的Django框架中使用通用视图的方法
Jul 21 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
python实现计算器功能
Oct 31 Python
Python 统计位数为偶数的数字代码详解
Mar 15 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
python tkinter实现连连看游戏
Nov 16 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
python excel转换csv代码实例
2019/08/26 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
python抓取多种类型的页面方法实例
2019/11/20 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
仓库理货员岗位职责
2013/12/18 职场文书
给护士表扬信
2014/01/19 职场文书
学生评语大全
2014/04/18 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python