解析编码的python脚本,我们经常看到从搜索引擎过来的referr带有很长的一串编码,如果能将其转化成我们可以看得懂的汉字呢,下面是一个小的脚本来完成这样的事情。感谢cocobear的提供。
import urllib
import sys,getopt,re
__doc__ = """Usage:
./url2read.py -h
./url2read.py -r ftp://cocobear.info/中国
./url2read.py http://cocobear.info/%E4%B8%AD%E5%9B%BD
"""
def url2read(s):
s = urllib.unquote(s)
try:
s = s.decode('utf-8')
except UnicodeDecodeError:
s = s.decode('gbk')
finally:
print s.encode(sys.stdin.encoding)
def read2url(s):
head = ''
g = re.search('^(http|ftp://)(.*)',s)
if g:
head = g.group(1)
s = g.group(2)
gbk = urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
utf8 = urllib.quote(s.decode(sys.stdin.encoding).encode('utf-8'))
if gbk == utf8:
print head+gbk
return 0
else:
print "UTF8:\n"+head+utf8
print "GBK:\n"+head+gbk
return 0
def main(argv=None):
f = False
if len(sys.argv) < 2:
print __doc__
return 1
try:
opts,args = getopt.getopt(sys.argv[1:],"h,r",["help","reverse"])
except getopt.error,msg:
print msg
print __doc__
return 1
for o,a in opts:
if o in ("-h","--help"):
print __doc__
return 0
if o in ("-r","--reverse"):
f = True
for arg in args:
if f:
return read2url(arg)
else:
return url2read(arg)
if __name__ == "__main__":
sys.exit(main())
做个示例,使用该程序在命令行下获取“\”的URL
编码:
[cocobear@cocobear sn]$ ./url2read.py -r ""'\'""
GBK:
%5C
UTF8:
%5C
注意这里由于存在shell的解释,需要这样把“\”围起来。
这个脚本可以很好的在Linux与Windows下使用,贴代码:
分享到:
相关推荐
在实际编程中,大多数编程语言都提供了内置函数来自动进行URL编码和解码,如JavaScript的`encodeURIComponent()`和`decodeURIComponent()`,Python的`urllib.parse.quote()`和`urllib.parse.unquote()`等。...
在实际应用中,URL编码不仅限于手动操作,许多编程语言如JavaScript、Python、Java等都提供了内置函数来自动处理URL编码和解码。例如,JavaScript中的`encodeURIComponent()`和`decodeURIComponent()`函数,可以方便...
### Python解析URL中关键字资料 #### 知识点概述 在Web开发与数据抓取过程中,经常需要对URL进行解析,以获取其中的关键字参数。本篇内容将围绕一段用于测试目的的URL集合,深入探讨如何使用Python语言来解析这些...
另外,虽然在大多数情况下,URL编码遵循ASCII标准,但在Unicode环境中,URL编码也可以扩展到包含非ASCII字符,这通常被称为“ Punycode”转换。 在实际开发中,了解并正确使用URL编码和解码不仅能保证数据的完整性...
本文将根据给定的“Python编码规范(Google)”文件内容,深入解析其中的关键知识点,并提供具体的实践建议。 #### 二、分号 **知识点:** - **避免使用分号:** 根据Google的Python编码规范,不推荐在行尾使用分号...
在IT行业中,URL编码(又称为百分号编码)是一种用于在网络应用中表示非ASCII字符或特殊字符的标准。这种编码方式是HTTP协议的一部分,确保数据可以在URL中安全传输。本话题将详细探讨“url编码解码源代码”,以及...
1. **编程语言内置函数**:在大多数编程语言中,如Java、Python、JavaScript,都有内置的函数来处理URL编码和解码,例如JavaScript的 `encodeURIComponent()` 和 `decodeURIComponent()` 函数。 2. **在线工具**:...
在Python中,有一个内置的`urllib.parse`模块,它提供了URL编码和解码的功能。`urllib.parse.quote()`函数用于对字符串进行URL编码,将非字母数字字符转换为百分号编码形式。例如,空格会转换为"%20"。而`urllib....
URL编码的主要目的是确保数据在通过网络传输时能够正确解析,不会因为特殊字符导致问题。在网页表单提交、链接重定向或数据查询字符串中,URL编码是至关重要的。例如,如果你在一个搜索框输入包含空格的关键词,...
URL编码是将非ASCII字符转换为%XX形式的过程,其中XX是该字符在UTF-8编码中的两位十六进制表示。Python中提供了`urllib.parse`模块来处理这种编码和解码。 在Python 3中,`urllib.parse`模块的`quote()`函数用于对...
URL编码是一种在网络应用中将特殊字符转换为安全的ASCII字符序列的过程,以确保URL的正确传输和解析。URL,全称Uniform Resource Locator,是统一资源定位符,是互联网上资源的唯一地址。实际上,URL是URI(统一资源...
通过使用`yarl`,我们可以更有效地处理URL,避免了许多常见的URL编码和解码问题,提高了代码的可读性和维护性。在实际开发中,结合`aiohttp`等异步库,`yarl`能帮助我们构建出高效的网络服务和客户端应用。
3. **编码与解码**:furl库支持URL编码和解码,确保在处理特殊字符时的正确性。 4. **URL合并**:可以将两个furl对象合并,保留它们共同的部分,并合并不同的部分,这在处理多个URL时非常有用。 5. **安全**:furl...
本文将深入探讨URL编码的概念、用途、原理以及相关工具。 URL(Uniform Resource Locator,统一资源定位符)是互联网上的资源地址,它包括协议、主机名、路径、查询参数等部分。在某些情况下,URL中的某些字符可能...
解析url用的类库: python2版本: from urlparse import urlparse import urllib ...另外host为‘s.weibo.com’的url编码与其他不同要另做处理。 代码如下:有些网站的规则还不是很清楚,需要花大量时间
整个过程涉及到的知识点主要包括Python爬虫技术、正则表达式的应用、字符编码转换、HTML解析技术等。在实际的网络爬虫项目中,除了提取网页标题,还可能需要提取网页中的其他各种信息,比如图片、链接、文本等,这些...
它提供了一个干净的 API,允许开发者轻松地操作 URL,例如解析 URL、合并 URL、对 URL 进行编码和解码等。purl 库非常小巧,但是功能强大,可以满足大多数开发者的需求。 URLfurl 是另一个小的 Python 库,用于操作...
本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接。分享给大家供大家参考,具体如下: url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码)。 url反向解析应用在两个地方:...
在这个主题中,我们将深入探讨URL编码的原理、相关标准以及如何在Python中实现这一过程。 URL(统一资源定位符)是用于访问互联网资源的地址,它可能包含各种特殊字符,如空格、逗号或引号。然而,这些字符在HTTP...
UrlDecode则是URL编码的逆过程,它将已经编码的URL转换回其原始形式,以便正确解析和理解。这在处理用户输入、解析查询参数或者在服务器端处理请求时非常有用。例如,"%20"会被解码为一个空格。 这个名为...