日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python3的urllib.parse常用函数小结

發布時間:2025/3/18 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3的urllib.parse常用函数小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1、獲取url參數

from urllib import parseurl = 'https://docs.python.org/3.5/search.html?q=parse&check_keywords=yes&area=default' parseResult = parse.urlparse(url) print(parseResult) # ParseResult(scheme='https', netloc='docs.python.org', path='/3.5/search.html', params='', query='q=parse&check_keywords=yes&area=default', fragment='') param_dict = parse.parse_qs(parseResult.query) print(param_dict) # {'q': ['parse'], 'check_keywords': ['yes'], 'area': ['default']} q = param_dict['q'][0] print(q) 'parse' # # 注意:加號會被解碼,可能有時并不是我們想要的 d = parse.parse_qs('proxy=183.222.102.178:8080&task=XXXXX|5-3+2') print(d)

2、 urlencode

from urllib import parsequery = {"name": "walker", "age": 99} d = parse.urlencode(query) print(d) # name=walker&age=99

3、quote/quote_plus

from urllib import parse d = parse.quote('a&b/c') #未編碼斜線 print(d) # a%26b/c d1 = parse.quote_plus('a&b/c') #編碼了斜線 print(d1) # a%26b%2Fc

4、unquote/unquote_plus

from urllib import parsed = parse.unquote('1+2') # 不解碼加號 print(d) # 1+2 d1 = parse.unquote_plus('1+2') # 把加號解碼為空格 print(d1) # 1 2

5、獲取url后面的參數為dict

from urllib import parsedef qs(url):query = parse.urlparse(url).queryreturn dict([(k, v[0]) for k, v in parse.parse_qs(query).items()])print(qs('http://url/api?param=2&param2=4')) # {'param': '2', 'param2': '4'}

6、URL參數拼接

from urllib import parsedef url_add_params(url, **params):pr = parse.urlparse(url)query = dict(parse.parse_qsl(pr.query))query.update(params)pr_list = list(pr)pr_list[4] = parse.urlencode(query)return parse.ParseResult(*pr_list).geturl()if __name__ == "__main__":url = 'http://bbs.163.com/viewthread.php'data = {"name": "hero", "111": "222"}print(url_add_params(url, **data))# result : http://bbs.163.com/viewthread.php?111=222&name=hero

7、其他功能

urljoin

from urllib import parsed = parse.urljoin('http://www.oschina.com/tieba', 'index.php') print(d) # http://www.oschina.com/index.php d1 = parse.urljoin('http://www.oschina.com/tieba/', 'index.php') print(d1) # http://www.oschina.com/tieba/index.php

urlsplit

urlsplit和urlparse差不多,不過它不切分URL的參數。適用于遵循RFC2396的URL,每個路徑段都支持參數。這樣返回的元組就只有5個元素.

from urllib import parseurl = parse.urlsplit('http://www.baidu.com/index.php?username=guol') print(url) # SplitResult(scheme='http', netloc='www.baidu.com', path='/index.php', query='username=guol', fragment='')

urlunsplit

使用urlsplit的格式組合成一個url,傳遞的元素必須是5個,或者直接將分解的元組重新組合

from urllib import parsed = parse.urlunsplit(("https", "i.cnblogs.com", "EditPosts.aspx", "a=a", "b=b")) print(d) # https://i.cnblogs.com/EditPosts.aspx?a=a#b=b

urlparse

urlparse(將url解析為組件,url必須以http://開頭)

from urllib import parsed = parse.urlparse("https://i.cnblogs.com/EditPosts.aspx?opt=1") print(d) # ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

urlunparse

使用urlparse的格式組合成一個url,可以直接將urlparse的返回傳遞組合

from urllib import parsedata = parse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1") print(parse.urlunparse(data)) # https://i.cnblogs.com:80/EditPosts.aspx?opt=1

轉載于:https://my.oschina.net/u/2474096/blog/1593377

總結

以上是生活随笔為你收集整理的Python3的urllib.parse常用函数小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。