2017-02-20 83 views
1

目前我对python很新,所以我正在用BeautifulSoup尝试一些东西。Python:阅读与BeautifulSoup具有相同属性的多个元标记内容?

我的问题是: 我想通过python阅读youtube视频的视频标签。 ex。

<meta property="og:video:tag" content="Official"> 
<meta property="og:video:tag" content="Trailer"> 
<meta property="og:video:tag" content="Movie"> 
<meta property="og:video:tag" content="Clip"> 

有:

yturl = soup.find("meta", {"property":"og:video:tag"})['content'] 

我可以只阅读第一标签

,并用:

yttag = soup.findAll("meta", {"property":"og:video:tag"}) 

一切后, “OG:视频:标签” 列和我只是想要的内容。 有没有可能使用BeautifulSoup,我可以读取具有相同名称/属性的多个元标记内容?

回答

1

使用list comprehension

>>> html = ''' 
... <meta property="og:video:tag" content="Official"> 
... <meta property="og:video:tag" content="Trailer"> 
... <meta property="og:video:tag" content="Movie"> 
... <meta property="og:video:tag" content="Clip"> 
... ''' 
>>> 
>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup(html, 'lxml') 
>>> [tag['content'] for tag in soup.findAll("meta", {"property":"og:video:tag"})] 
['Official', 'Trailer', 'Movie', 'Clip'] 
# maps Tag elements to their content attributes 
相关问题