`
Ryee
  • 浏览: 273105 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

URL编码解析python

阅读更多

解析编码的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下使用,贴代码:

 

分享到:
评论

相关推荐

    Python解析、提取url关键字的实例详解

    解析url用的类库: python2版本: from urlparse import urlparse import urllib ...另外host为‘s.weibo.com’的url编码与其他不同要另做处理。 代码如下:有些网站的规则还不是很清楚,需要花大量时间

    Python Django框架url反向解析实现动态生成对应的url链接示例

    本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接。分享给大家供大家参考,具体如下: url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码)。 url反向解析应用在两个地方:...

    Python爬虫获取页面所有URL链接过程详解

    在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL。 什么是Beautiful Soup? Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树...

    Python 爬虫之超链接 url中含有中文出错及解决办法

    Python 爬虫之超链接 url中含有中文出错及解决办法 python3.5 爬虫错误: UnicodeEncodeError: 'ascii' codec can't encode characters 这个错误是由于超链接中含有中文引起的,超链接默认是用ascii编码的,所以不...

    url参数中有+、空格、=、%、、#等特殊符号的问题解决

    url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,...+ URL 中+号表示空格 + 空格 URL中的空格可以用+号或者编码 / 分隔目录和子目录 / ? 分隔实际的URL和参数 

    Python_Requests使用.pdf

    lib更加方便,urlLib库可以处理客户端的请求和服务器端的请求,还可以解析URL地址  Requests 使用的是 urllib3,继承了它的所有特性  Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持...

    python爬虫课程要点.docx

    data:附加参数(from表数据),bytes字节流格式,如果是字典型(dict),先用urllib.parse.urlencode()编码。 headers:请求头,字典类型,可以构造请求时直接通过headers参数构造,或通过add_header() 3)response:...

    python爬虫把url链接编码成gbk2312格式过程解析

    主要介绍了python爬虫把url链接编码成gbk2312格式过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    geocoder:Python地理编码器

    有时解析特定的地理编码提供程序可能非常困难,因为每个提供程序都有自己的 JSON 模式。 这是使用 Python 从 Google 检索 Lat & Lng 的典型示例,事情不应该这么难。 &gt;&gt; &gt; import requests &gt;&gt; &gt; url = '...

    基于Python+HTML+MySQL的图书借阅管理系统.zip

    URL解析库:Urllib 时间库:Time 时间库:Datetime 操作系统库:os 5.3编码方式 前端网页:GBK 服务器端:GBK 数据库:UTF-8 5.4运行环境 服务器:Windows7 SP1旗舰版 + Python2.7 前端:Opera...

    python用于url解码和中文解析的小脚本(python url decoder)

    python print(repr(“测试报警,xxxx是大猪头”.decode(“UTF8”).encode(“GBK”)).replace(“\\x”,”%”)) 注意第一个 decode(“UTF8”) 要与文件声明的编码一样。 最开始对这个问题的接触,来自于一个...

    Python入门网络爬虫之精华版

    json格式数据中,需从'\uxxxx'形式的unicode_escape编码转换成u'\uxxxx'的unicode编码。 7. 自动化测试工具Selenium Selenium是一款自动化测试工具。它能实现操纵浏览器,包括字符填充、鼠标点击、获取元素、页面...

    1.Python异步库使用介绍.zip

    Python爬虫库的介绍 数据抓取与解析 HTML解析与XPath、CSS选择器的应用 JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 ...

    python图像爬虫代码:用于爬取网站上的图片和视频资源.txt

    在这个函数中,我们使用了requests库的get方法来发送HTTP请求,并设置了response的编码为网页的实际编码。如果请求成功,我们将返回response的文本内容;如果请求失败,我们将打印错误信息。 2. 然后,我们定义了一...

    Python urlencode和unquote函数使用实例解析

    当url地址含有中文,或者参数有中文的时候,这个算是很正常了,但是把这样的url作为参数传递的时候(最常见的callback),需要把一些中文甚至’/’做一下编码转换。 所以对于一些中文或者字符,url不识别的,则需要...

    Python Cookbook

    13.9 修复Python 2.4的email.FeedParser 解析的消息 477 13.10 交互式地检查POP3邮箱 479 13.11 探测不活动的计算机 482 13.12 用HTTP监视网络 487 13.13 网络端口的转发和重定向 489 13.14 通过代理建立SSL...

    【python爬虫 系列】15.实战五 爬取笑话大全

    BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快,推荐使用lxml 解析器。 爬取笑话大全: 冷笑话...

    详解python内置模块urllib

    urllib 是 python 的内置模块, 主要用于处理url相关的一些操作,例如访问url、解析url等操作。 urllib 包下面的 request 模块主要用于访问url,但是用得太多,因为它的光芒全都被 requests 这个第三方库覆盖了,最...

    restkit:用于Python的HTTP资源工具包

    多部分形式和url编码形式 流媒体支持 代理处理 HTTP过滤器,您可以使用自己的回调将请求挂接到响应中 兼容Python 2.x(&gt; = 2.6) 文献资料 安装 restkit要求使用优于2.6的Python 2.x(即将推出对Python 3的支持) ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 字符编码 第3章 01 网络基础和dos命令 02 为何学习linux 03 课程内容介绍 04 操作系统内核与系统调用 05 操作系统安装原理 06 linux操作系统安装 07 初识linux命令 08 linux操作系统目录结构 09 目录及文件操作...

Global site tag (gtag.js) - Google Analytics