Что я должен использовать: urlparse или urlsplit? - PullRequest
26 голосов
/ 29 марта 2011

Какую пару функций парсинга URL мне следует использовать и почему?

Ответы [ 2 ]

15 голосов
/ 29 марта 2011

Непосредственно из документов, которые вы сами связали :

urllib.parse.urlsplit(urlstring, scheme='', allow_fragments=True)
Это похоже на urlparse(), но не отделяет параметры от URL.Обычно это следует использовать вместо urlparse(), если требуется более свежий синтаксис URL, позволяющий применять параметры к каждому сегменту части пути URL (см. RFC 2396).

5 голосов
/ 01 мая 2015

Как указано в документе ,
urlparse.urlparse возвращает 6-кортеж (с дополнительным параметром кортеж)
urlparse.urlsplit возвращает 5-кортеж

Атрибут | Индекс | Значение | Значение, если не присутствует
параметры | 3 | Параметры для последнего элемента пути | пустая строка


К сведению: согласно RFC2396 , параметр в спецификации URL

Обширное тестирование текущих клиентских приложений показало большинство развернутых систем не используют ";" характер для указать информацию о последнем параметре, а также наличие точка с запятой в сегменте пути не влияет на относительный разбор этот сегмент. Поэтому параметры были удалены как отдельные компонент и теперь может появиться в любом сегменте пути. Их влияние был удален из алгоритма для разрешения относительного URI ссылка.

...