TSUBOCK★LABO-ツボックラボ-

とあるセキュリティエンジニアの技術メモブログ

MENU

Pythonのurllib.parseモジュールを使ってURLを解析する

小ネタかもしれないですが、よく使うので記載しておきます。

分析作業をしてるときにPythonの処理の中でURLの必要な部分だけ抜き出したり、URLの要素から判定をしたいときにurllib.parseのurlparseを使って解析をしています。

urlparseの使用例

URL文字列のParseについて下記サンプルを使って説明を行う。

from urllib.parse import urlparse, parse_qs
 
 
url = "https://www.example.com:3000/test.html?usr_id=hoge"
 
 
result = urlparse(url)
 
 
print(f"schema: {result.schema}")
print(f"netloc: {result.netloc}")
print(f"hostname: {result.hostname}")
print(f"port: {result.port}")
print(f"path: {result.path}")
print(f"query: {result.query}")

出力結果

schema: https
netloc: www.example.com:3000
hostname: www.example.com
port: 3000
path: test.html
query: usr_id=hoge

キーを指定すると、URLのパース結果から必要な部分だけ取得出来てとても便利です。

parse_qsの使用例

先ほどの例で取得したqueryをparse_qsでパースしてみます。

query = parse_qs(result.query)

print("query: {query}")

出力結果

query: {"usr_id": ["hoge"]}

parse_qsを使うことでクエリパラメータの中身をdict型で取り出すことができます。

urlparseやparse_qs以外にもパーサーモジュールがあるのですが、使用したことがないので、他のパーサーモジュールについては下記リファレンスに書いてあるので、参照してみてください!

セキュリティ関連調査作業とかでURLって分析に使用することがあると思うので機械的にParseする場合にはあると便利なモジュールだと思ってます!

参考文献