从python中的两个url格式解析id

时间:2013-06-07 12:19:54

标签: python facebook url

我是python中的新手。我有两种不同的网址格式:

url_format_1 = 'https://www.facebook.com/facebook/posts/10151927580276729'
# and
url_format_2 = 'https://www.facebook.com/photo.php?fbid=10151496277356729&set=a.10150629589136729.412063.20531316728&type=1'

我想要的是获得id。第一种格式当然是10151927580276729,第二种是10151496277356729

我想检测是否使用了第一种或第二种格式,然后继续并获取ID。

1 个答案:

答案 0 :(得分:0)

对于第一种格式,您可以使用简单的split()。对于第二种格式,我建议使用正则表达式。

要检测您正在处理的格式,您可以先尝试使用正则表达式。如果抛出异常,请继续并尝试使用split()

import re

urls = [
    'https://www.facebook.com/facebook/posts/10151927580276729',
    'https://www.facebook.com/photo.php?fbid=10151496277356729&set=a.10150629589136729.412063.20531316728&type=1',
    ]

for u in urls:
    try:
        print re.search(r'fbid=([0-9]+)', u).group(1)
    except:
        print u.split('/')[-1]

输出:

10151927580276729
10151496277356729