13

我有一个巨大的 url 列表,都是这样的:

http://www.example.com/site/section1/VAR1/VAR2

其中 VAR1 和 VAR2 是 url 的动态元素。我想要做的是只从这个 url 字符串中提取 VAR1。我尝试使用urlparse但输出如下所示:

ParseResult(scheme='http', netloc='www.example.com', path='/site/section1/VAR1/VAR2', params='', query='', fragment='')
4

4 回答 4

18

或者,您可以应用以下split()方法:

>>> url = "http://www.example.com/site/section1/VAR1/VAR2"
>>> url.split("/")[-2:]
['VAR1', 'VAR2']
于 2015-07-01T19:40:52.893 回答
15

您可以大致记住这一点。可以使用获取 url 的不同部分urlparse。这里可以获取pathby urlparse(url).path,然后通过split()函数获取想要的变量

>>> from urlparse import urlparse
>>> url = 'http://www.example.com/site/section1/VAR1/VAR2' 
>>> urlparse(url)
ParseResult(scheme='http', netloc='www.example.com', path='/site/section1/VAR1/VAR2', params='', query='', fragment='')
>>> urlparse(url).path
'/site/section1/VAR1/VAR2'
>>> urlparse(url).path.split('/')[-2]
'VAR1'
于 2015-07-01T19:41:32.780 回答
4

检查这个,它非常有效,因为它使用 maxsplit 选项从字符串的末尾开始,我们可以停止拆分次数。

最后,您可以使用索引来获取 url 的最后两部分

>>> url.rsplit('/',2)[1:]
['VAR1', 'VAR2']
于 2015-07-01T20:01:11.547 回答
0

我会简单地尝试

url = 'http://www.example.com/site/section1/VAR1/VAR2'
var1 = url.split('/')[-2]
于 2015-07-01T19:42:29.317 回答