PythonでスクレイピングをしてURLを取得してきた時に、そのURLからドメインだけを取り出すことはできるのかなと思い調べてみました。
やりたいこと
URLからドメインだけを取得したい。
URLから
https://programmer-life.work/python/random-randint
↓
ドメインにしたい!
programmer-life.work
URLからドメインだけを取得する方法
びっくりするくらい簡単に取得できました。
from urllib.parse import urlparse
domain = urlparse(‘https://programmer-life.work/python/random-randint’).netloc
print(domain) # –> programmer-life.work
使える条件はPython3であることです。
また、元のURLにwwwがついている場合は、wwwもついてきます。
from urllib.parse import urlparse
domain = urlparse(‘https://www.programmer-life.work/python/random-randint’).netloc
print(domain) # –> www.programmer-life.work
wwwも取り除きたい場合は部分一致でwwwだけ取り除くとかでいけそうですね。参考元にはtldextractなどのライブラリを使えばと言った感じでした。ライブラリよりは部分一致の方が私には簡単そうに思えますがどうなんでしょうね。
おわり
てっきり正規表現の沼にハマるかと思っていたので痒いところに手が届く便利なモジュールがあって助かりました。
参考元
https://stackoverflow.com/questions/44113335/extract-domain-from-url-in-python