Я работаю с приложением, которое возвращает URL-адреса, написанные с помощью Flask. Я хочу, чтобы URL-адрес, отображаемый пользователю, был как можно более чистым, поэтому я хочу удалить из него http: //. Я посмотрел и нашел библиотеку urlparse, но не смог найти примеров того, как это сделать. Какой был бы лучший способ сделать это, и если urlparse будет излишним, есть ли более простой способ? Просто удалил бы подстроку «http: //» из URL-адреса, просто используя обычные инструменты разбора строк, быть плохой практикой или вызывать проблемы?Как удалить схему из url в Python?
ответ
Я не думаю, что urlparse
предлагает для этого один метод или функцию. Это, как я хотел бы сделать это:
from urlparse import urlparse
url = 'HtTp://stackoverflow.com/questions/tagged/python?page=2'
def strip_scheme(url):
parsed = urlparse(url)
scheme = "%s://" % parsed.scheme
return parsed.geturl().replace(scheme, '', 1)
print strip_scheme(url)
Выход:
stackoverflow.com/questions/tagged/python?page=2
Если вы хотите использовать (только) простой строки синтаксического анализа, вам придется иметь дело с http[s]
, и, возможно, другие схемы сам. Кроме того, это управляет странным корпусом схемы.
Если вы используете эти программные средства, а не используете замену, я предлагаю, чтобы urlparse воссоздал URL-адрес без схемы.
Объект ParseResult является кортежем. Таким образом, вы можете создать другое удаление полей, которые вы не хотите.
# py2/3 compatibility
try:
from urllib.parse import urlparse, ParseResult
except ImportError:
from urlparse import urlparse, ParseResult
def strip_scheme(url):
parsed_result = urlparse(url)
return ParseResult('', *parsed_result[1:]).geturl()
Вы можете удалить любой компонент parseedresult, просто заменив ввод пустой строкой.
Важно отметить, что существует функциональная разница между этим ответом и ответом @Lukas Graf. Наиболее вероятным функциональным отличием является то, что компонент «//» URL-адреса не является технически схемой, поэтому этот ответ сохранит его, тогда как он останется здесь.
>>> Lukas_strip_scheme('https://yoman/hi?whatup')
'yoman/hi?whatup'
>>> strip_scheme('https://yoman/hi?whatup')
'//yoman/hi?whatup'
- 1. Как удалить определенную схему из Mongoose?
- 2. Удалить схему из окна выбора в FF
- 3. Как удалить опубликованную схему wmi?
- 4. Как удалить часть URL-адреса в python?
- 5. Как удалить схему на ссылку?
- 6. Проверить схему URL ios
- 7. Как проверить правильную схему URL в iPhone?
- 8. Python фильтр/удалить URL-адреса из списка
- 9. Удалить схему из linq datacontexts (dbml)
- 10. Как удалить% 07 из url в Python/Django
- 11. Как удалить некоторый URL из строки в Python
- 12. Как удалить .com из URL-адреса в python?
- 13. Невозможно удалить схему в дерби
- 14. получить схему URL-адрес из приложения
- 15. Удалить схему ссылки из p: tabView
- 16. Как удалить схему PhysBody в Swift/Xcode
- 17. Удалить схему фокусировки TideSDK
- 18. Как реализовать схему URL в моем приложении?
- 19. Как удалить параметры из URL?
- 20. Как удалить index.php из URL?
- 21. Как удалить .aspx из url
- 22. Как удалить/отправить/из URL?
- 23. Как удалить 'Индекс' из URL
- 24. Как удалить каталог из URL
- 25. Как удалить тег из url
- 26. Как удалить hashbang из url?
- 27. Как удалить URL из текста?
- 28. Как удалить returnurl из url?
- 29. Как удалить Localhost из URL
- 30. JQuery как удалить # из URL