python中urlparse模塊介紹與使用示例
簡介
urlparse模塊主要是用于解析url中的參數(shù) 對url按照一定格式進(jìn)行 拆分或拼接。urlparse庫用于把url解析為各個組件,支持file,ftp,http,https, imap, mailto, mms, news, nntp, prospero, rsync, rtsp, rtspu, sftp, shttp, sip, sips, snews, svn, svn+ssh, telnet等幾乎所有的形式。
注意:根據(jù)其官網(wǎng)的說明,在Python3.0中,此庫已經(jīng)更名為urllib.parse了。
使用說明
1.urlparse.urlparse
將url分為6個部分,返回一個包含6個字符串項目的元組:協(xié)議、位置、路徑、參數(shù)、查詢、片段。
import urlparse url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1') print url_change
輸出結(jié)果為:
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
其中 scheme 是協(xié)議 netloc 是域名服務(wù)器 path 相對路徑 params是參數(shù),query是查詢的條件
urlparse.parse_qs(urlparse.urlparse(url).query)
這個是獲取urlparse分割后元祖中的某一項 urlparse.urlparse(url).query 獲取查詢條件
parse_qs 有幾種實(shí)現(xiàn)
- urlparse.parse_qs 返回字典
- urlparse.parse_qsl 返回列表
2. urlparse.urlsplit
和urlparse差不多,將url分為5部分,返回一個包含5個字符串項目的元組:協(xié)議、位置、路徑、查詢、片段。
import urlparse url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1') print url_change
SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')
其中 scheme 是協(xié)議 netloc 是域名服務(wù)器 path 相對路徑 query是查詢的條件
3.urlparse.urljoin
將相對的地址組合成一個url,對于輸入沒有限制,開頭必須是http://,否則將不組合前面。
import urlparse new_url = urlparse.urljoin('https://baidu.com/ssss/','88888') print new_url
輸出 https://baidu.com/ssss/88888
如果輸入錯誤信息 如 new_url = urlparse.urljoin('122','88888') 并不會將兩者合并 輸出‘88888'
urlparse獲取url后面的參數(shù)
如果給定你一個URL,比如: http://url/api?param=2¶m2=4 我們需要獲取參數(shù)名和參數(shù)值的話,那可以用到python標(biāo)準(zhǔn)庫urlparse
import urlparse def qs(url): query = urlparse.urlparse(url).query return dict([(k,v[0]) for k,v in urlparse.parse_qs(query).items()])
print qs('http://url/api?param=2¶m2=4')
返回的結(jié)果: {'param':'2','param2':'4'}
注意:這個模塊的parse_qs方法在2;5的版本是不存在的,只有2.5以上的才有,你需要調(diào)用該方法的時候可以先通過dir(urlparse)查看模塊urlparse是否有相應(yīng)的方法。
官方文檔地址 http://docs.python.org/library/urlparse.html
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章

Python寫的創(chuàng)建文件夾自定義函數(shù)mkdir()

利用python的socket發(fā)送http(s)請求方法示例

關(guān)于Pycharm無法debug問題的總結(jié)

利用Python對文件夾下圖片數(shù)據(jù)進(jìn)行批量改名的代碼實(shí)例