実践・初級問題チェック
問題 33 /40
次のコードで【A】【B】【C】【D】を取得する属性はどれか。
from urllib import parse
result = parse.urlparse('https://www.sample.com/test/?id=xxx')
【A】 https
【B】 www.sample.com
【C】 /test/
【D】 id=xxx
選択 1
【A】 query
【B】 hostname
【C】 path
【D】 fragment
選択 2
【A】 hostname
【B】 path
【C】 fragment
【D】 query
選択 3
【A】 scheme
【B】 path
【C】 hostname
【D】 fragment
選択 4
【A】 scheme
【B】 hostname
【C】 path
【D】 query
解説
選択肢4が正解です。
urllib.parseのurlparse()関数を使うと、urlをスキームやパスなどの要素に分解できます。
主な属性は以下です。
【scheme】
httpやhttpsなどのURLスキーム
【path】
パスの階層
【query】
?以降のクエリ文字
【fragment】
#以降のフラグメント識別子
【hosname】
ホスト名
問題文のURLは以下に対応します。
https → scheme
www.sample.com → hosname
/test/ → path
id=xxx → query
各属性の値を取得する場合は、「result.scheme」のように名前でアクセスするか、「result[0]」のようにインデックス番号でアクセスします。
(公式書籍 p.320-321)