假设我们有不同的Facebook页面链接。我想在这些链接中提取“实体”。例如:
在http://www.facebook.com/pages/Blue-Mountain-Aromatics/561694213861926 我想提取'Blue-Mountain-Aromatics'。
在http://www.facebook.com/1905BocaJuniors我想提取'1905BocaJuniors'。
在https://www.facebook.com/7upGuatemala?ref=br_tf我要提取'7upGuatemala'
在http://www.fb.com/supligenjm我想提取'supligenjm'
在http://www.facebook.com/axebolivia?sk=wall&filter=1我想提取'axebolivia'
我尝试过很多if-else语句,以便将其降低,但最终它只是意大利面条代码。
有任何帮助吗?
答案 0 :(得分:1)
try:
from urlparse import urlparse
except ImportError:
from urllib.parse import urlparse
links = [
'http://www.facebook.com/pages/Blue-Mountain-Aromatics/561694213861926',
'http://www.facebook.com/1905BocaJuniors',
'https://www.facebook.com/7upGuatemala?ref=br_tf',
'http://www.fb.com/supligenjm',
'http://www.facebook.com/axebolivia?sk=wall&filter=1',
]
for url in links:
url = urlparse(url)
path = url.path.split('/')
entity = path[2] if path[1] == 'pages' else path[1]
print(entity)
答案 1 :(得分:1)
@Robᵩs的Python 3版本回答(并重写为函数):
from urllib.parse import urlparse
links = [
'http://www.facebook.com/pages/Blue-Mountain-Aromatics/561694213861926',
'http://www.facebook.com/1905BocaJuniors',
'https://www.facebook.com/7upGuatemala?ref=br_tf',
'http://www.fb.com/supligenjm',
'http://www.facebook.com/axebolivia?sk=wall&filter=1',
]
def fb_extract(url):
url = urlparse(url)
path = url.path.split('/')
entity = path[2] if path[1] == 'pages' else path[1]
return entity
for url in links:
fb_extract(url)
希望这有帮助!