python实现中文转换url编码的方法
本文实例讲述了python实现中文转换url编码的方法。分享给大家供大家参考,具体如下:
今天要处理百度贴吧的东西。想要做一个关键词的list,每次需要时,直接添加 到list里面就可以了。但是添加到list里面是中文的情况(比如‘丽江'),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要做一个转换。这里我们就用到了模块urllib。
>>> import urllib >>> data = '丽江' >>> print data 丽江 >>> data '\xe4\xb8\xbd\xe6\xb1\x9f' >>> urllib.quote(data) '%E4%B8%BD%E6%B1%9F'
那我们想转回去呢?
>>> urllib.unquote('%E4%B8%BD%E6%B1%9F') '\xe4\xb8\xbd\xe6\xb1\x9f' >>> print urllib.unquote('%E4%B8%BD%E6%B1%9F') 丽江
细心的同学会发现贴吧url中出现的是%C0%F6%BD%AD,而非'%E4%B8%BD%E6%B1%9F',其实是编码问题。百度的是gbk,其他的一般网站比如google就是utf8的。所以可以用下列语句实现。
>>> import sys,urllib >>> s = '丽江' >>> urllib.quote(s.decode(sys.stdin.encoding).encode('gbk')) '%C0%F6%BD%AD' >>> urllib.quote(s.decode(sys.stdin.encoding).encode('utf8')) '%E4%B8%BD%E6%B1%9F' >>>
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
python通过urllib2获取带有中文参数url内容的方法
本文实例讲述了python通过urllib2获取带有中文参数url内容的方法.分享给大家供大家参考.具体如下: 对于中文的参数如果不进行编码的话,python的urllib2直接处理会报错,我们可以先将中文转换成utf-8编码,然后使用urllib2.quote方法对参数进行url编码后传递. content = u'你好 jb51.net' content = content.encode('utf-8') content = urllib2.quote(content) api_url =
-
python用于url解码和中文解析的小脚本(python url decoder)
复制代码 代码如下: # -*- coding: utf8 -*- #! python print(repr("测试报警,xxxx是大猪头".decode("UTF8").encode("GBK")).replace("\\x","%")) 注意第一个 decode("UTF8") 要与文件声明的编码一样. 最开始对这个问题的接触,来自于一个Javascript解谜闯关的小游戏,某一关的
-
Python 爬虫之超链接 url中含有中文出错及解决办法
Python 爬虫之超链接 url中含有中文出错及解决办法 python3.5 爬虫错误: UnicodeEncodeError: 'ascii' codec can't encode characters 这个错误是由于超链接中含有中文引起的,超链接默认是用ascii编码的,所以不能直接出现中文,若要出现中文, 解决方法如下: import urllib from urllib.request import urlopen link="http://list.jd.com/list.html?
-
python实现中文转换url编码的方法
本文实例讲述了python实现中文转换url编码的方法.分享给大家供大家参考,具体如下: 今天要处理百度贴吧的东西.想要做一个关键词的list,每次需要时,直接添加 到list里面就可以了.但是添加到list里面是中文的情况(比如'丽江'),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要做一个转换.这里我们就用到了模块urllib. >>> import urllib >>> data = '丽江' >>> print dat
-
Python实现批量转换文件编码的方法
本文实例讲述了Python实现批量转换文件编码的方法.分享给大家供大家参考.具体如下: 这里将某个目录下的所有文件从一种编码转换为另一种编码,然后保存 import os import shutil def match(config,fullpath,type): flag=False if type == 'exclude': for item in config['src']['exclude']: if fullpath.startswith(config['src']['path']+o
-
python实现unicode转中文及转换默认编码的方法
本文实例讲述了python实现unicode转中文及转换默认编码的方法.分享给大家供大家参考,具体如下: 一.在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8"转换为中文,实际上这是unicode的中文编码.可用以下方法转换: 1. >>> s = u'\u4eba\u751f\u82e6\u77ed\uff0cpy\u662f\u5cb8' >>> print s 人生苦短,
-
python使用chardet判断字符串编码的方法
本文实例讲述了python使用chardet判断字符串编码的方法.分享给大家供大家参考.具体分析如下: 最近利用python抓取一些网上的数据,遇到了编码的问题.非常头痛,总结一下用到的解决方案. linux中vim下查看文件编码的命令 set fileencoding python中一个强力的编码检测包 chardet ,使用方法非常简单.linux下利用pip install chardet实现简单安装 import chardet f = open('file','r') fencodin
-
Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉. 二.原理 数字的特征是 数字 + 单位,例如三百,四十二,九千零二 可以从后往前遍历,遇到的是0到9的数字,就乘以前一位的单位,遇到新的单位(十百千万)就替换成数字供下一个数字用. 三.举例 五百四十三 1. 三-->3 3 <10 : total = 3 2. 十-->10, 10
-
基于python 处理中文路径的终极解决方法
1 .据说python3就没有这个问题了 2 .u'字符串' 代表是unicode格式的数据,路径最好写成这个格式,别直接跟字符串'字符串'这类数据相加,相加之后type就是str,这样就会存在解码失误的问题. 别直接跟字符串'字符串'这类数据相加 别直接跟字符串'字符串'这类数据相加 别直接跟字符串'字符串'这类数据相加 unicode类型别直接跟字符串'字符串'这类数据相加 说四遍 3 .有些读取的方式偏偏是要读取str类型的路径,不是unicode类型的路径,那么我们把这个str.enco
-
python 字典中文key处理,读取,比较方法
昨天碰到的,如果键是中文,如何进行匹配呢,先看文本内容: 这是字典里两个元素的内容,编码是utf-8,中文内容 运行代码如下 # -*- coding: utf-8 -*- rate1 = open('takeOffTime_date.txt', 'r') dic = dict() for line in rate1: line = line.strip().split(' ') data=line[0].decode('utf-8') dic[data]=line[1] print dic 比
-
python将字符串转换成数组的方法
python将字符串转换成数组的方法.分享给大家供大家参考.具体实现方法如下: #----------------------------------------- # Name: string_to_array.py # Author: Kevin Harris # Last Modified: 02/13/04 # Description: This Python script demonstrates # how to modify a string by # converting it
-
python实现中文输出的两种方法
本文实例讲述了python实现中文输出的两种方法.分享给大家供大家参考.具体如下: 方法一: 用encode和decode 如: import os.path import xlrd,sys Filename='/home/tom/Desktop/1234.xls' if not os.path.isfile(Filename): raise NameError,"%s is not a valid filename"%Filename bk=xlrd.open_workbook(Fi
随机推荐
- Bash脚本内置的调试方法技巧
- 数据库中的左连接(left join)和右连接(right join)区别
- jquery 获取当前元素的索引值
- cmos下屏蔽intel Q35主板E-SATA接口的设置图文
- java求100以内的素数示例分享
- java中实现兼容ie6 7 8 9的spring4+websocket
- Openstack 创建项目和虚拟机详细介绍
- PHP XML error parsing SOAP payload on line 1
- Three.js获取鼠标点击的三维坐标示例代码
- WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
- android开发socket编程之udp发送实例分析
- Action获取请求参数的三种方式
- 基于JavaScript 类的使用详解
- 批处理bat判断一个文件在最近5分钟内是否被更新过的代码
- javascript重写alert方法的实例代码
- Silverlight将图片转换为byte的实现代码
- C#判断某程序是否运行的方法
- C++构造函数深度学习
- javaweb 国际化:DateFormat,NumberFormat,MessageFormat,ResourceBundle的使用
- 详解如何使用 vue-cli 开发多页应用