URL-соединение двух URI - PullRequest
       1

URL-соединение двух URI

0 голосов
/ 16 февраля 2020

Я пытаюсь присоединиться к этим двум URI

from urllib.parse import urljoin    
# baskslash is not a mistake
r = urljoin(r"https:/\\corrlinks.blob.core.windows.net", r"videofaq")  
print(r)

Я получаю

https:///videofaq

Как я могу получить

https:/\\corrlinks.blob.core.windows.net/videofaq  

Это будет нормально тоже:

https://corrlinks.blob.core.windows.net/videofaq  

Примечание. Браузеры обрабатывают ссылку выше просто отлично.

Ответы [ 3 ]

1 голос
/ 17 февраля 2020

Функция интерпретирует sla sh как baseurl, поэтому вам нужно добавить еще один в конце, чтобы научить его:

urljoin(r"https:/\\corrlinks.blob.core.windows.net/", "videofaq")
0 голосов
/ 19 февраля 2020

Я закончил с

url = url.replace("\\" , "/").replace("///", "//")
0 голосов
/ 16 февраля 2020

python рассматривает backsla sh (\) как escape-символ.

использование r'string 'много раз полезно. r просто означает необработанную строку. Это полезно, когда мы хотим иметь строку, содержащую backsla sh, и не хотим, чтобы она рассматривалась как escape-символ. В этом случае

from urllib.parse import urljoin
r = urljoin(r"https://corrlinks.blob.core.windows.net", "videofaq")  
print(r)
# returns https://corrlinks.blob.core.windows.net/videofaq  

Это должно сделать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...