2

所以我正在使用python对网页进行一些解析,我想将完整的网址分成两部分。假设我有地址http://www.stackoverflow.com/questions/ask。我需要协议和域(例如http://www.stackoverflow.com)和路径(例如 /questions/ask)。我认为这可以通过一些正则表达式来解决,但是我对此并不那么方便。有什么建议么?

4

3 回答 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 回答