Python:使用BeautifulSoup读取具有相同属性的多个元标记内容?

时间:2017-02-20 15:45:01

标签: python beautifulsoup metadata

目前我对python很新,所以我正在尝试使用BeautifulSoup。

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

<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">

with:

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

我只能阅读第一个标签

和:

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

列出“og:video:tag”后的所有内容,我只想要内容。 有没有可能使用BeautifulSoup我可以读取多个具有相同名称/属性的元标记内容?

1 个答案:

答案 0 :(得分: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