亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python用于url解碼和中文解析的小腳本(python url decoder)

 更新時(shí)間:2013年08月11日 13:40:20   作者:  
這篇文章主要介紹了python用于url解碼和中文解析的代碼,需要的朋友可以參考下
復(fù)制代碼 代碼如下:

# -*- coding: utf8 -*-
#! python
print(repr("測(cè)試報(bào)警,xxxx是大豬頭".decode("UTF8").encode("GBK")).replace("\\x","%"))


注意第一個(gè) decode("UTF8") 要與文件聲明的編碼一樣。

最開(kāi)始對(duì)這個(gè)問(wèn)題的接觸,來(lái)自于一個(gè)Javascript解謎闖關(guān)的小游戲,某一關(guān)的提示如下:

剛開(kāi)始的幾關(guān)都是很簡(jiǎn)單很簡(jiǎn)單的哦~~這一關(guān)只是簡(jiǎn)單的字符串變形而已…..

后面是一大長(zhǎng)串開(kāi)頭是%5Cu4e0b%5Cu4e00%5Cu5173%5Cu7684這樣的字符串。
這種東西以前經(jīng)常在瀏覽器的地址欄見(jiàn)到,就是一直不知道怎么轉(zhuǎn)換成能看懂的東東,
網(wǎng)上google了一下,結(jié)合python的url解碼和unicode解碼,解決方式如下:

復(fù)制代碼 代碼如下:

import urllib escaped_str="%5Cu4e0b%5Cu4e00%5Cu5173%5Cu7684%5Cu9875%5Cu9762%5Cu540d%5Cu5b57%5Cu662f%5Cx20%5Cx69%5Cx32%5Cx6a%5Cx62%5Cx6a%5Cx33%5Cx69%5Cx34%5Cx62%5Cx62%5Cx35%5Cx34%5Cx62%5Cx35%5Cx32%5Cx69%5Cx62%5Cx33%5Cx2e%5Cx68%5Cx74%5Cx6d"
print urllib.unquote(escaped_str).decode('unicode-escape')

最近,我對(duì)firefox的autoproxy插件中的gfwlist中的中文詞匯(用過(guò)代理的同學(xué)們,你們懂的)產(chǎn)生了興趣,然而這些網(wǎng)址都是用url編碼的,比如http://zh.wikipedia.org/wiki/%E9%97%A8,需要使用正則表達(dá)式將被url編碼的中文字符提取出來(lái),寫(xiě)了個(gè)小腳本如下:

復(fù)制代碼 代碼如下:

import urllib
import re
with open("listfile","r") as f:
    for url_str in f:
        match=re.compile("((%\w{2}){3,})").findall(url_str)
        #漢字url編碼的樣式是:百分號(hào)+2個(gè)十六進(jìn)制數(shù),重復(fù)3次

        if match!=None:
            #如果匹配成功,則將提取出的部分轉(zhuǎn)換為中文
            for trans in match:
                print urllib.unquote(trans[0]),

然而這個(gè)腳本仍有一些缺點(diǎn),對(duì)于列表文件中的某些中文字符仍然不能正常解碼,比如下面這幾行測(cè)試代碼

復(fù)制代碼 代碼如下:

import urllib
a="http://zh.wikipedia.org/wiki/%BD%F0%B6"
b="http://zh.wikipedia.org/wiki/%E9%97%A8"
de=urllib.unquote
print de(a),de(b)

輸出結(jié)果就是前者可以正確解碼,而后者不可以,個(gè)人覺(jué)得原因可能和big5編碼有關(guān),如果誰(shuí)知道什么解決辦法,還請(qǐng)告訴我一下~

以下是補(bǔ)充:

de(a).decode(“gbk”,”ignore”)
de(b).decode(“utf8″,”ignore”)

這樣你可以得到這些字串的unicode編碼。

你用的unquote不是decoder, 你需要作必要的decode和encode。我一直用utf8作我默認(rèn)環(huán)境的,我覺(jué)得你大概用的gbk吧,所以後者的解碼你那邊失敗了。猜編碼是很累的事情,如果大家都用utf8倒也好,但是有些人習(xí)慣了gb。

http://yac163.svn.sourceforge.net/viewvc/yac163/trunk/yac163-nox/Pic.py?revision=198&view=markup

參考我這個(gè)很古老code裡面的#102-147行 給每個(gè)decode和encode調(diào)用加上(…,”ignore”)。

復(fù)制代碼 代碼如下:

def strdecode( string,charset=None ):
     if isinstance(string,unicode):
         return string
     if charset:
         try:
             return string.decode(charset)
         except UnicodeDecodeError:
             return _strdecode(string)
     else:
         return _strdecode(string)

 def _strdecode(string):
     try:

         return string.decode('utf8')
     except UnicodeDecodeError:
         try:
             return string.decode('gb2312')
         except UnicodeDecodeError:
             try:

                 return string.decode('gbk')
             except UnicodeDecodeError:
                 return string.decode('gb18030')

 def strencode( string,charset=None ):
     if isinstance(string,str):
         return string
     if charset:
         try:
             return string.encode(charset)
         except UnicodeEncodeError:
             return _strencode(string)
     else:
         return _strencode(string)
 def _strencode(string):

     try:
         return string.encode('utf8')
     except UnicodeEncodeError:
         try:
             return string.encode('gb2312')
         except UnicodeEncodeError:
             try:
                 return string.encode('gbk')
             except UnicodeEncodeError:
                 return string.encode('gb18030')

相關(guān)文章

  • Matplotlib繪制混淆矩陣的實(shí)現(xiàn)

    Matplotlib繪制混淆矩陣的實(shí)現(xiàn)

    對(duì)于機(jī)器學(xué)習(xí)多分類(lèi)模型來(lái)說(shuō),其評(píng)價(jià)指標(biāo)除了精度之外,常用的還有混淆矩陣和分類(lèi)報(bào)告,下面來(lái)展示一下如何繪制混淆矩陣,這在論文中經(jīng)常會(huì)用到。感興趣的可以了解一下
    2021-05-05
  • python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例

    python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例

    這篇文章主要介紹了python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python 關(guān)于模塊和加載模塊的實(shí)現(xiàn)

    Python 關(guān)于模塊和加載模塊的實(shí)現(xiàn)

    這篇文章主要介紹了Python 關(guān)于模塊和加載模塊的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 全面剖析Python的Django框架中的項(xiàng)目部署技巧

    全面剖析Python的Django框架中的項(xiàng)目部署技巧

    這篇文章主要全面剖析了Python的Django框架的部署技巧,包括Fabric等自動(dòng)化部署和建立單元測(cè)試等方面,強(qiáng)烈推薦!需要的朋友可以參考下
    2015-04-04
  • python實(shí)現(xiàn)定制交互式命令行的方法

    python實(shí)現(xiàn)定制交互式命令行的方法

    這篇文章主要介紹了python實(shí)現(xiàn)定制交互式命令行的方法,需要的朋友可以參考下
    2014-07-07
  • Python實(shí)現(xiàn)破解猜數(shù)游戲算法示例

    Python實(shí)現(xiàn)破解猜數(shù)游戲算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)破解猜數(shù)游戲算法,簡(jiǎn)單描述了猜數(shù)游戲的原理,并結(jié)合具體實(shí)例形式分析了Python破解猜數(shù)游戲的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • python文本數(shù)據(jù)處理學(xué)習(xí)筆記詳解

    python文本數(shù)據(jù)處理學(xué)習(xí)筆記詳解

    這篇文章主要為大家詳細(xì)介紹了python文本數(shù)據(jù)處理學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 基于Tensorflow高階讀寫(xiě)教程

    基于Tensorflow高階讀寫(xiě)教程

    今天小編就為大家分享一篇基于Tensorflow高階讀寫(xiě)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python實(shí)現(xiàn)Sqlite將字段當(dāng)做索引進(jìn)行查詢(xún)的方法

    Python實(shí)現(xiàn)Sqlite將字段當(dāng)做索引進(jìn)行查詢(xún)的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)Sqlite將字段當(dāng)做索引進(jìn)行查詢(xún)的方法,涉及Python針對(duì)sqlite數(shù)據(jù)庫(kù)索引操作的相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • Python海龜繪圖詳解

    Python海龜繪圖詳解

    python2.6版本中后引入的一個(gè)簡(jiǎn)單的繪圖工具,叫做海龜繪圖(Turtle Graphics),出現(xiàn)在1966年的Logo計(jì)算機(jī)語(yǔ)言。海龜繪圖(turtle庫(kù))是python的內(nèi)部模塊,使用前導(dǎo)入即可。本文就帶大家深入了解一下海龜繪圖,快來(lái)跟隨小編一起學(xué)習(xí)吧
    2021-12-12

最新評(píng)論