2016-04-04 18 views
1

比方说这是我的URL字符串:的Python:正则表达式解析URL组件

https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400

我想分析只是访问令牌部分 “XXXXXX))”

这是我已经这样做的远:

from urllib.parse import urlparse 
strr = "https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400" 

o = urlparse(strr) 

print(o.fragment) 

我得到的输出是:

=的access_token XXXXXX))&过期= 86400

什么是从这里最好的方式得到只有 “XXXXXX))” 的一部分?使用正则表达式?

+1

'pydoc3 urllib.parse.parse_qs ' – larsks

回答

3

下面是做到这一点的一种方式 - 先用urlparse(),然后调用parse_qs()fragment

>>> from urllib.parse import parse_qs, urlparse 
>>> 
>>> strr = "https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400" 
>>> o = parse_qs(urlparse(strr).fragment) 
>>> print(o['access_token']) 
['xxxxxx))'] 
0

您可以使用正则表达式:

(?<=access_token=)[^\)]*