\

PythonでURLを結合する際には、os.path.joinではなくurlparse.urljoinを使用することが推奨されています。これは、os.path.joinを使用すると、期待した結果が得られない場合があるからです。

例えば、次のようなコードを考えてみましょう。

import os.path
channel_urls = ['/channel/UCVrJcoR8hUN9Rn7uPI4z6NQ']
for i in channel_urls:
    root_url = 'https://www.youtube.com'
    channel_url = ('%s' % i)
    channel_about_url = urlparse.urljoin(youtube_url, channel_url, 'about')
    print(self.open_channel_url)  # /channel/UCVrJcoR8hUN9Rn7uPI4z6NQ/about

このコードでは、os.path.joinを使用してURLを結合していますが、結果のURLにhttps://www.youtube.comが含まれていません。

一方、urlparse.urljoinを使用すると、次のようになります。

try:
    import urlparse
except ImportError:
    import urllib.parse as urlparse

channel_urls = ['/channel/UCVrJcoR8hUN9Rn7uPI4z6NQ']
for i in channel_urls:
    root_url = 'https://www.youtube.com'
    channel_url = ('%s' % i)
    channel_about_url = urlparse.urljoin(youtube_url, channel_url, 'about')
    print(self.open_channel_url)  # https://www.youtube.com/channel/UCVrJcoR8hUN9Rn7uPI4z6NQ/about

このコードでは、urlparse.urljoinを使用してURLを結合しており、結果のURLにhttps://www.youtube.comが正しく含まれています。

したがって、PythonでURLを結合する際には、urlparse.urljoinを使用することが推奨されています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です