本答案頁包含 Python URL 解析 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。
答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。
https://example.com/docs?q=1 的 netloc 是什麼?
答案: example.com
為什麼: netloc 是網路位置,通常是主機名和可選埠。
執行結果是什麼?
from urllib.parse import urljoin
print(urljoin("https://example.com/a/b.html", "../c.html"))答案: https://example.com/c.html
為什麼: urljoin 從 /a/ 目錄向上解析 ../,到達站點根目錄。
parse_qs 對 page=2 回傳什麼?
答案: ['2']
為什麼: parse_qs 把每個鍵映射到列表,因為鍵可能重複。
這段程式列印出什麼?
from urllib.parse import urlencode
print(urlencode({"q": "a b", "page": 2}))答案: q=a+b&page=2
為什麼: urlencode 在查詢字串中把空格編碼為 +。
補全 URL 組成部分解析函式。
from urllib.parse import urlparse
url = ____("https://example.com/docs?q=1")
print(url.netloc)答案: urlparse
為什麼: urlparse 把 URL 拆成命名組成部分。
補全相對連結的函式。
from urllib.parse import urljoin
base = "https://example.com/docs/page.html"
print(____(base, "../guide.html"))答案: urljoin
為什麼: urljoin 把基準 URL 和相對引用組合起來。
補全查詢字串解析函式。
from urllib.parse import parse_qs
params = ____("page=2&tag=python")
print(params["page"])答案: parse_qs
為什麼: parse_qs 回傳鍵到值列表的映射。
補全查詢字串編碼函式。
from urllib.parse import urlencode
print(____({"q": "a b", "page": 2}))答案: urlencode
為什麼: urlencode 從映射構造跳脫後的查詢字串。
程式碼的輸出結果是什麼?
from urllib.parse import urlparse
print(urlparse("https://example.com/docs/page.html").netloc)答案: example.com
為什麼: 網路位置是主機名 example.com。
螢幕上會顯示什麼?
from urllib.parse import urlparse
print(urlparse("https://example.com/docs/page.html").path)答案: /docs/page.html
為什麼: 路徑部分是 /docs/page.html。
這段程式碼會輸出什麼?
from urllib.parse import urljoin
print(urljoin("https://example.com/docs/page.html", "../guide.html"))答案: https://example.com/guide.html
為什麼: /docs/ 的上一級是站點根目錄,所以結果是 /guide.html。
執行結果是什麼?
from urllib.parse import urlparse
print(urlparse("https://example.com/search?q=python&page=2").query)答案: q=python&page=2
為什麼: 查詢部分是問號之後的全部內容。
先試一遍題目
打開 Python URL 解析 練習頁,用即時回饋回答同樣的 12 道題。