我正在嘗試使用 urllib 獲取 url 的引數。
在重溫了一些 StackOverflow Q&A 之后,有以下幾行的答案:
從 urllib.parse 匯入 urlparse
url2='https://batavia.flyingcar.org/dfr/?d=34?f=56#/?dossier=ZT18174#/?dossier2=ZZ274'
parsed = urlparse(url2)
print(parsed)
結果是:
ParseResult(scheme='https', netloc='batavia.internal.epo.org', path='/digital-file-repository/', params='', query='d=34?f=56', fragment='/?dossier=ZT1880174#/?dossier2=ZZ2221880174')
為了獲得我可能使用的所有引數:
print(parsed.params)
print(parsed.query)
print(parsed.fragment)
結果:
d=34?f=56
/?dossier=ZT18174#/?dossier2=ZZ274
我的問題:a)為什么 params 什么都不是?b) 是否有任何函式可以以字典的形式獲取結果而無需決議字串?c) 如果片段都意味著傳遞引數,為什么片段作為查詢被區別對待?
uj5u.com熱心網友回復:
首先,URL 中不應有多個?,后續引數以&. 該 URL 剛剛損壞。
a) param 始終為空,它甚至被記錄為“始終為空字串”
b) 您可以使用urllib.parse.parse_qs()將查詢字串拆分為字典,但如果?查詢字串中有多個,它將不起作用
c) 從片段決議 params 只是一個約定,片段是之后的一切#,沒有任何標準的編碼約定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/388072.html
