【问题标题】:Python: Read multiple meta tag contents with the same property with BeautifulSoup?Python:使用 BeautifulSoup 读取具有相同属性的多个元标记内容?
【发布时间】:2017-02-20 15:45:01
【问题描述】:

目前我对 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">

与:

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

我只能读取第一个标签

并与:

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

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

【问题讨论】:

    标签: python beautifulsoup metadata


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2018-01-09
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多