2

誰かhost = parsed.netloc.split('@')[-1].split(':')[0]が次のコードでこの行の目的を説明してもらえますか? netlock からホスト名を取得しようとしていることは理解していますが、@ 区切り文字で分割し、さらに : 区切り文字で分割する理由がわかりません。

import urlparse
parsed = urlparse.urlparse('https://www.google.co.uk/search?client=ubuntu&channel=fs')
print parsed
host = parsed.netloc.split('@')[-1].split(':')[0]
print host


Result:

ParseResult(scheme='https', netloc='www.google.co.uk', path='/search', params='', query='client=ubuntu&channel=fs, fragment='')

www.google.co.uk

確かに、ドメインだけが必要な場合は、urlparse.netloc から取得できます。

4

1 に答える 1

3

完全な形式の Netloc には、HTTP 認証資格情報とポート番号を含めることができます。

login:password@www.google.co.uk:80

RFC1808およびRFC1738を参照

したがって、それを に分割し["login:password", "www.google.co.uk:80"]、最後の部分を取得し、それを に分割し["www.google.co.uk", "80"]てホスト名を取得する必要がある可能性があります。

これらの部分が省略されている場合、存在しない区切り記号で分割しようとしても害はなく、省略されているかどうかを確認する必要はありません。

urlparseドキュメンテーション

于 2013-07-04T21:49:39.090 に答える