答案頁 · 12 道題

Python URL 解析練習答案

本頁彙整 Python URL 解析 的 12 道練習。先做練習頁,再回到這裡核對準確答案和原因。

快速答案

本答案頁包含 Python URL 解析 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。

答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。

01 · 選擇題

https://example.com/docs?q=1 的 netloc 是什麼?

  1. /docs
  2. example.com正確答案
  3. https
  4. q=1

答案: example.com

為什麼: netloc 是網路位置,通常是主機名和可選埠。

02 · 選擇題

執行結果是什麼?

from urllib.parse import urljoin
print(urljoin("https://example.com/a/b.html", "../c.html"))
  1. https://example.com/a/c.html
  2. https://example.com/c.html正確答案
  3. ../c.html
  4. https://example.com/a/b/c.html

答案: https://example.com/c.html

為什麼: urljoin 從 /a/ 目錄向上解析 ../,到達站點根目錄。

03 · 選擇題

parse_qs 對 page=2 回傳什麼?

  1. ('2',)
  2. '2'
  3. ['2']正確答案
  4. 2

答案: ['2']

為什麼: parse_qs 把每個鍵映射到列表,因為鍵可能重複。

04 · 選擇題

這段程式列印出什麼?

from urllib.parse import urlencode
print(urlencode({"q": "a b", "page": 2}))
  1. q=a+b&page=2正確答案
  2. q%3Da%2Bb
  3. q=a b&page=2
  4. a b,2

答案: q=a+b&page=2

為什麼: urlencode 在查詢字串中把空格編碼為 +。

05 · 填空題

補全 URL 組成部分解析函式。

from urllib.parse import urlparse
url = ____("https://example.com/docs?q=1")
print(url.netloc)

答案: urlparse

為什麼: urlparse 把 URL 拆成命名組成部分。

06 · 填空題

補全相對連結的函式。

from urllib.parse import urljoin
base = "https://example.com/docs/page.html"
print(____(base, "../guide.html"))

答案: urljoin

為什麼: urljoin 把基準 URL 和相對引用組合起來。

07 · 填空題

補全查詢字串解析函式。

from urllib.parse import parse_qs
params = ____("page=2&tag=python")
print(params["page"])

答案: parse_qs

為什麼: parse_qs 回傳鍵到值列表的映射。

08 · 填空題

補全查詢字串編碼函式。

from urllib.parse import urlencode
print(____({"q": "a b", "page": 2}))

答案: urlencode

為什麼: urlencode 從映射構造跳脫後的查詢字串。

09 · 輸出預測

程式碼的輸出結果是什麼?

from urllib.parse import urlparse
print(urlparse("https://example.com/docs/page.html").netloc)

答案: example.com

為什麼: 網路位置是主機名 example.com。

10 · 輸出預測

螢幕上會顯示什麼?

from urllib.parse import urlparse
print(urlparse("https://example.com/docs/page.html").path)

答案: /docs/page.html

為什麼: 路徑部分是 /docs/page.html。

11 · 輸出預測

這段程式碼會輸出什麼?

from urllib.parse import urljoin
print(urljoin("https://example.com/docs/page.html", "../guide.html"))

答案: https://example.com/guide.html

為什麼: /docs/ 的上一級是站點根目錄,所以結果是 /guide.html。

12 · 輸出預測

執行結果是什麼?

from urllib.parse import urlparse
print(urlparse("https://example.com/search?q=python&page=2").query)

答案: q=python&page=2

為什麼: 查詢部分是問號之後的全部內容。

先試一遍題目

打開 Python URL 解析 練習頁,用即時回饋回答同樣的 12 道題。

練習本課