Получить протокол + имя хоста из URL - PullRequest
130 голосов
/ 09 марта 2012

В моем приложении Django мне нужно получить имя хоста от реферера в request.META.get('HTTP_REFERER') вместе с его протоколом, чтобы из URL-адресов, таких как:

Я должен получить:

Я просмотрел другие связанные вопросы и нашел относительно urlparse, но это не помогло, так как

>>> urlparse(request.META.get('HTTP_REFERER')).hostname
'docs.google.com'

Ответы [ 12 ]

0 голосов
/ 02 ноября 2018

Я знаю, что это старый вопрос, но я тоже столкнулся с ним сегодня. Решил это с помощью одной строки:

import re
result = re.sub(r'(.*://)?([^/?]+).*', '\g<1>\g<2>', url)
0 голосов
/ 21 июня 2018

Если он содержит менее 3 косых черт, значит, у вас есть, а если нет, то мы можем найти вхождение между ними:

import re

link = http://forum.unisoftdev.com/something

slash_count = len(re.findall("/", link))
print slash_count # output: 3

if slash_count > 2:
   regex = r'\:\/\/(.*?)\/'
   pattern  = re.compile(regex)
   path = re.findall(pattern, url)

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