Итак, я использую python для разбора веб-страниц, и я хочу разбить полный веб-адрес на две части. Скажем, у меня есть адрес http://www.stackoverflow.com/questions/ask. Мне нужен протокол и домен (например, http://www.stackoverflow.com) и путь (например,/questions/ask). Я решил, что это может быть решено каким-то регулярным выражением, но я не очень удобен в этом. Какие-либо предложения?Как разбить веб-адрес
2
A
ответ
0
import re
url = "http://stackoverflow.com/questions/ask"
protocol, domain = re.match(r"(http://[^/]*)(.*)", url).groups()
7
Используйте Python urlparse модуль:
https://docs.python.org/library/urlparse.html
Для четких и хорошо пройденных проблем, как это, не беспокойтесь писать свой собственный код, не говоря уже свой собственный регулярным выражения. Они вызывают слишком много проблем ;-).
12
Дан прав: urlparse ваш друг:
>>> from urlparse import urlparse
>>>
>>> parts = urlparse("http://www.stackoverflow.com/questions/ask")
>>> parts.scheme + "://" + parts.netloc
'http://www.stackoverflow.com'
>>> parts.path
'/questions/ask'
+0
Должен любить, что батареи были включены в философию. Я думал, что регулярное выражение сначала b/c. Я не знал, что эта батарея была включена. Благодарю. – 2008-11-13 18:22:03
Дублировать. См. Http://stackoverflow.com/questions/258746/slicing-url-with-python и http://stackoverflow.com/questions/163009/urllib2-file-name – 2008-11-13 10:57:44