2008-11-13 7 views
2

Итак, я использую python для разбора веб-страниц, и я хочу разбить полный веб-адрес на две части. Скажем, у меня есть адрес http://www.stackoverflow.com/questions/ask. Мне нужен протокол и домен (например, http://www.stackoverflow.com) и путь (например,/questions/ask). Я решил, что это может быть решено каким-то регулярным выражением, но я не очень удобен в этом. Какие-либо предложения?Как разбить веб-адрес

+0

Дублировать. См. Http://stackoverflow.com/questions/258746/slicing-url-with-python и http://stackoverflow.com/questions/163009/urllib2-file-name – 2008-11-13 10:57:44

ответ

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