4

Python の urlparse 関数は、URL を 6 つのコンポーネント (scheme、netloc、path など) に解析します。

「example.com/path/file.ext」を解析すると netloc は返されず、パス「example.com/path/file.ext」が返されることがわかりました。

netloc = "example.com" で path = "/path/file.ext" ではないでしょうか?

netloc が存在するかどうかを判断するために「://」が本当に必要ですか?

Python のチケット: http://bugs.python.org/issue8284

4

2 に答える 2

6

scheme:// がなければ、example.com がドメインであるという保証はありません。example.com というディレクトリを作成できます。同様に、「omfgroflmao/path/file.ext」という URL を持つことができます。「omfgroflmao」がローカル ネットワーク上のマシン (つまり、netloc) であるかどうか、またはそれがパス コンポーネントであることを意図しているかどうかをどのように知ることができますか?

Python コードが実際に間違っているとは思えませんが、おそらく、そのようなあいまいな状況での動作をドキュメントで明示的に説明する必要があります (私は確認していません)。

于 2010-04-01T22:06:01.893 に答える
1

example.com/path/file.extは URL ではありません。それは単なる文字列です。たとえば、<a href="example.com/path/file.ext">HTML ページに入れても、 にはリンクしませんhttp://example.com/path/file.ext。これは、Web ブラウザーによって提供される単なるショートカットであり、先頭にhttp://. urllib2.urlopen()そのような URL をおよび類似の関数のパラメータとして使用することさえできません。

于 2010-04-01T22:05:58.423 に答える