URLの結合とか調べてみた。urllibモジュールのurljoinを使って行う。

#!/usr/bin/env python3

import urllib.parse

# ↓ http://hoge.com/index.html?abc=123 と表示される (1)
print(urllib.parse.urljoin("http://hoge.com", "index.html?abc=123"))

# ↓ http://hoge2.com/hogehoge.html と表示される (2)
print(urllib.parse.urljoin("http://hoge.com", "http://hoge2.com/hogehoge.html"))

# URLを解析してみる (3)
url = urllib.parse.urlparse("http://hoge.com:8080/index.html?abc=123")
print(url)              # ParseResult(scheme='http', netloc='hoge.com:8080', path='/index.html', params='', query='abc=123', fragment='') と表示される
print(url.netloc)       # hoge.com:8080 と表示される。
  • (1)は、まー普通につないてみてる。
  • (2)は、渡されるURLが相対的なURLか絶対的なURLかわからない場合を想定して絶対URLが渡された場合を想定してる。2つ目の引数に絶対URLを渡したら、2つ目の引数のURLがそのまま帰ってくるのが確認できた。
  • (3)は、試しにURLを解析(分解)させてみた。urlparseを使う。表示結果のように分解される。