Python学習講座

PythonエンジニアによるPython3学習サイト

TIPS

URLからドメイン名を抽出する

2017/01/30


urlparse URLをパースする

仕事でURLのリストをドメインごとに集計するために使った方法を紹介します。以下のプログラムは、指定されたURLについて標準モジュールのurlparseを使用した後、フォーマットすることによりhttp://xxxxx.comのような形式に変形した文字列を出力します。例えば、社内から外部へのアクセスログを集計する場合なんかに使えると思います。

from urllib.parse import urlparse

# 解析対象URL 
access_url = 'http://www.python.ambitious-engineer.com/archives/?s=hoge&x=0&y=0'

# URLをパースする
parsed_url = urlparse(access_url)

# URLスキーマ
print(parsed_url.scheme) # http

# ネットワーク上の位置(≒ドメイン)を取得する
print(parsed_url.netloc) # www.python.ambitious-engineer.com

# 階層パス
print(parsed_url.path) # /archives/


# クエリ要素 
print(parsed_url.query) # s=hoge&x=0&y=0

# フォーマットする 
url = '{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(access_url))
print(url) # http://www.python.ambitious-engineer.com/

-TIPS
-,