URLからホスト名を取得したい
調べたらurllib.parse.urlparseが使えるとのこと
from urllib.parse import urlparse
r = urlparse("https://www.example.com/hogehoge.html")
print(r.netloc) # >>> www.example.com
urlparseにURLを入れてそれのnetloc属性がホスト名を持つらしい
普通に使う分にはこれで事足りました
しかし、とある要素が入ると動かなくなる
何故かこの場合の動作がおかしくなります
from urllib.parse import urlparse
r = urlparse("https://localhost:8000")
print(r.netloc) # >>> localhost:8000
いや、お前(ポート番号)何でついて来るんだ
何でなんでしょう
とりあえずこう書いてみた
from urllib.parse import urlparse
r = urlparse("https://localhost:8000")
print(r.netloc.split(":", 1)[0]) # >>> localhost
はい、わざわざ:で分割してるあたり気持ち悪いですね
解決策
urlparseのドキュメントに凸ったら「hostname」といういかにもそれらしき属性を発見しました
from urllib.parse import urlparse
r1 = urlparse("https://www.example.com/hogehoge.html")
print(r1.hostname) # >>> www.example.com
r2 = urlparse("https://localhost:8000")
print(r2.hostname) # >>> localhost
勝ちましたね
それにしてもnetlocって何の意味があるんでしょうね
調べるとurlparseのnetloc属性=ホスト名だといった記事がたくさんヒットするんですが……
謎だ……