答案页 · 12 道题

Python URL 解析练习答案

本页汇总 Python URL 解析 的 12 道练习。先做练习页,再回到这里核对准确答案和原因。

快速答案

本答案页包含 Python URL 解析 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。

答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。

01 · 选择题

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

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

答案: example.com

为什么: netloc 是网络位置,通常是主机名和可选端口。

02 · 选择题

运行结果是什么?

from urllib.parse import urljoin
print(urljoin("https://example.com/a/b.html", "../c.html"))
  1. ../c.html
  2. https://example.com/a/b/c.html
  3. https://example.com/a/c.html
  4. https://example.com/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%3Da%2Bb
  2. q=a b&page=2
  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 道题。

练习本课