Python urlparse, правильный или неправильный?
Функция Python urlparse разбивает URL на шесть компонентов (схема, netloc, путь и другие вещи)
Теперь я обнаружил, что синтаксический анализ "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
2 ответа
Без схемы:// нет гарантии, что example.com является доменом. Вы можете иметь каталог с именем example.com. Точно так же у вас может быть URL-адрес "omfgroflmao/path/file.ext". Как вы узнаете, является ли "omfgroflmao" компьютером в локальной сети (т. Е.NETloc) или же он является компонентом пути?
Я не вижу, что код Python на самом деле неправильный, но, возможно, документация должна четко описывать поведение в таких неоднозначных обстоятельствах (я не проверял).
example.com/path/file.ext
это не URL. Это просто какая-то строка. Например, если вы положите <a href="example.com/path/file.ext">
на страницу HTML, он не будет ссылаться на http://example.com/path/file.ext
, Это просто ярлык, предоставленный веб-браузерами, который не нужно добавлять в http://
, Вы даже не можете использовать такой URL в качестве параметра для urllib2.urlopen()
и аналогичные функции.