urlのデコード

3812 ワード

2、URLのデコード
2.1、特殊文字
urlではASCIIコード(8ビット)の文字セットを使用しています.東亜地区の中国語はurlの中で特に符号化しなければならなくて、規則は百分号の後で2つの16進数の数字をつないで、それとASCII文字表の中の対応する位置は同じです.特殊な場合:1、よくある場合は、再度urlにスペース文字を使うことはできません.現在の先進ブラウザを自動的にエンコーディングできます.http://192.168.90.162/advanced search.ブラウザは自動的にできます.http://192.168.90.162/advanced%20search.html2は、一部の文字はurlを不法にさせて、文字を保留するためです.斜めの文字が経路を分割するために使用されるように、斜めの文字を使って経路としてではなく、斜めの線のように変換する必要があります(もちろん、windowsで作成されたファイル名には「\/?\"?\""?\""""(>>>」の任意の文字は含まれません)が、linuxは柔軟です.
文字を保持
URLコード
文字を保持
urlコード
文字を保持
;
%3 B
:
3%A
を選択します.
2%F
@
%40
&
%26
?
%3 F
3、安全でない文字とは、URLには特別な意味がないが、URLの文脈に特殊な意味がある文字のことをいいます.ダブルクォーテーションマークのように、ラベルに属性と値が分かれています.urlにダブルクォーテーションマークが含まれていると、ブラウザ解析時にエラーが発生する可能性があります.この場合は、ダブルクォーテーションマークを%22で符号化して衝突を解決することができます.ブラウザの知能解析 安全ではありませんが安全ではありません文字コードの例:<%3 C、>%3 E,菗%23,%25,~%7 E,\%5 Cなど.
2.2、urllib.parseモジュールurl編みの復号方法
「quot」方法:URLを符号化する「unquot」:urlを復号する「uplus」方法で、さらにスペースを+記号に表す「unquot teuplus」方法で、+記号をスペースに変えます.
>>> r2=quote("/~test aggin &/")
>>> r2
'/%7Etest%20aggin%20%26/'    #     &        , ”/“     
>>> un_r2=unquote(r2)
>>> un_r2
'/~test aggin &/'
>>> quote("~/ test","~/")   #quote        :  "~"           ,        ”~“     。
'~/%20test'
「quot techuglus」は「/」を「2 F」に置き換え、「空欄」を「記号」に置き換えます.これは「te」との主な違いです.
>>> quote_plus("/~test aggin &/")
'%2F%7Etest+aggin+%26%2F'
>>> unquote_plus('%2F%7Etest+aggin+%26%2F')
'/~test aggin &/'
2.3、中国語のデコード
http://192.168.90.162/中国語.htmlは、現在主流のブラウザchrome、IE、edgeなどはすでに認識されていますが、問題は無視できません.安全でない文字に対してurl符号を使うのはいつも安全ではありません.
>>> quote("    ")
'%E4%B8%AD%E6%96%87%E7%BC%96%E7%A0%81'
>>> unquote('%E4%B8%AD%E6%96%87%E7%BC%96%E7%A0%81')
'    '
2.4、クエリーパラメータの符号化
httpの2つのデータの提出方法:getとpost.クエリーパラメータとその値を提出する必要があります.特別get方法では、アドレスバーにこの値を表示します.https://www.baidu.com/s?wd=url%E7%BC%96%E7%A0%81&rsv_spt=1&rsv_iqid=0xb6a3f6f50003c26a&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf8&rqlang=cn&tn=baiduhome_pg&rsv_enter=0&oq=url%25E7%25BC%2596%25E7%25A0%2581&rsv_t=a 3 a 7 nKjz 1 kdhBSmGXcoRFeCicwee 05 LR 5 H 9 nq 5 W 5 GZWVKwR×××WAjMl 98 d 3 Rfvhq%2 FJb&rsvup q=8532322 1820004 be3
>>> unquote("url%E7%BC%96%E7%A0%81")   ?wd=url%E7%BC%96%E7%A0%81          
'url  '
クエリパラメータを符号化する方法:urlencodeは、urllib.parseモジュールによって提供される.この方法は、クエリのパラメータ値をURLに戻して符号化する新式である.パラメータ値ペアは、一連の辞書データでありうる.
>>> urlencode([('key1','value1'),('key2','value2')])
'key1=value1&key2=value2'
>>> help(urlencode)
Help on function urlencode in module urllib.parse:
説明1、クエリーパラメータは1つのリストです.ここのリストの長さは2です.パラメータフォーマットリストの中には、タプル2、urlencodeがあり、パラメータ値をリストに対してURL文字列として符号化しています.パラメータの順序とリストが一致します.
>>> urlencode([("key1","urlencode  ")])
'key1=urlencode%E7%BC%96%E7%A0%81'
urlencode方法は、クエリーパラメータに入力されたデータを制御するためのオプションのパラメータも受け入れることができます.デフォルト値False.つまり、照会データリストのvalueもリストである場合、全体のquotを使用して符号化されます.
>>> urlencode([("keyword",("value1","value2","value3"))])
'keyword=%28%27value1%27%2C+%27value2%27%2C+%27value3%27%29'
>>> urlencode([("keyword",("value1","value2","value3"))],True)      True ,  value         keyword          。
'keyword=value1&keyword=value2&keyword=value3'