本答案页包含 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 道题。