【问题标题】:Retrieving content of meta BS4 elements检索元 BS4 元素的内容
【发布时间】:2021-09-20 14:07:03
【问题描述】:

我正在尝试检索包含标记元素的列表的内容。

列表包括以下示例:

list_titles = [tag, tag, tag]

每个标签由以下结构描述:

list_titles[i] = <meta content="first title" name="title"/>

我需要检索这些标签的标题。因此,我尝试了以下操作:

content_list = []
for title in list_title:
    content = title['content']
    content_list.append(content)

还尝试了以下方法:

for i, title in enumerate(list_title):
   test = list_title[i]
   content = test['content']

两者都给出错误'NoneType' object is not subscriptable'。获取每个bs4标签内容的正确方法是什么?

【问题讨论】:

标签: python html beautifulsoup


【解决方案1】:

据我所知,您的方法是正确的,尤其是第一种。因为您可以通过将元素视为字典来访问属性。问题很可能是您尝试检索的元素不存在,或者您没有使用正确的选择器。

【讨论】:

    【解决方案2】:

    content 属性在每个 meta 上可用,语法如下:

    print(tag['content'])
    

    考虑以下示例 sn-p:

    from bs4 import BeautifulSoup
    
    html = """
    <meta content="first title" name="title 1"/>
    <meta content="second title" name="title 2"/>
    """
    
    soup = BeautifulSoup(html, 'html.parser')
    
    for meta in soup.findAll('meta'):
        print(meta['content'])
    

    这将打印出来

    first title
    second title
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多