所以我正在使用python对网页进行一些解析,我想将完整的网址分成两部分。假设我有地址http://www.stackoverflow.com/questions/ask。我需要协议和域(例如http://www.stackoverflow.com)和路径(例如 /questions/ask)。我认为这可以通过一些正则表达式来解决,但是我对此并不那么方便。有什么建议么?
The.Anti.9
问问题
833 次
3 回答
13
丹是对的: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'
注意:在 Python 3 中是from urllib.parse import urlparse
于 2008-11-13T03:37:48.487 回答
7
使用 Python urlparse 模块:
https://docs.python.org/library/urlparse.html
对于这样一个定义明确且经过广泛传播的问题,不要费心编写自己的代码,更不用说自己的正则表达式了。它们造成了太多麻烦;-)。
于 2008-11-13T03:13:00.877 回答
-1
import re
url = "http://stackoverflow.com/questions/ask"
protocol, domain = re.match(r"(http://[^/]*)(.*)", url).groups()
于 2008-11-13T03:12:46.103 回答