Pythonでは、URLとクエリ文字列を結合するために、urllib.parse
モジュールのurljoin
関数を使用します。この関数は、2つのURLを結合し、絶対URLを生成します。
import urllib.parse
url1 = "http://127.0.0.1/test1/test2/test3/test5.xml"
url2 = "../../test4/test6.xml"
# urljoinを使用してurl1とurl2を結合
new_url = urllib.parse.urljoin(url1, url2)
print(new_url) # 出力: http://127.0.0.1/test1/test4/test6.xml
しかし、複数のパスコンポーネントを結合する場合、urljoin
はパスを置き換えるので、それぞれのパスコンポーネントを個別に結合する必要があります。そのためには、posixpath
モジュールのjoin
関数を使用します。
import urllib.parse
import posixpath
url1 = "http://127.0.0.1"
url2 = "test1"
url3 = "test2"
url4 = "test3"
url5 = "test5.xml"
# posixpath.joinを使用して複数のパスコンポーネントを結合
url_path = posixpath.join(url2, url3, url4, url5)
# urljoinを使用してurl1とurl_pathを結合
new_url = urllib.parse.urljoin(url1, url_path)
print(new_url) # 出力: http://127.0.0.1/test1/test2/test3/test5.xml
このように、Pythonのurllib.parse
モジュールは、URLとクエリ文字列を効率的に操作するための強力なツールを提供しています。