Почему python представляет URL-адрес (вместо базового в сочетании с URL-адресом), когда URL-адрес начинается с mailto? - PullRequest
0 голосов
/ 27 августа 2018

Почему python представляет URL-адрес (вместо базового в сочетании с URL-адресом), когда URL-адрес начинается с mailto?

Вот что произошло:

from urllib.parse import urljoin 

>>> urljoin('http://www.w3.org/Consortium/mission.html', 'mailto:site-comments@w3.org')
   'mailto:site-comments@w3.org'

но я ожидал, что результат будет:

   'http://www.w3.org/Consortium/mailto:site-comments@w3.org'

С:

>>> urljoin('http://www.w3.org/Consortium/mission.html', 'thing')
    'http://http://www.w3.org/Consortium/thing'

(Также см .: Python: путаница с urljoin )

Сначала я думал, что mailto присутствует в результате, потому что mailto - это абсолютный URL-адрес. Но mailto не начинается с // или схемы: //, поэтому он не является абсолютным URL-адресом.

Примечание. Если URL-адрес является абсолютным URL (т. Е. Начинается с // или схема: //), имя хоста и / или схема URL будут присутствовать в результат.

См .: https://docs.python.org/3.0/library/urllib.parse.html

Итак, если «mailto:» не является абсолютным URL, почему «mailto:» является результирующим URL? Это поведение, которое я хочу, но я просто не понимаю, почему это происходит.

...