美丽的汤越来越 tag.id

Posted

技术标签:

【中文标题】美丽的汤越来越 tag.id【英文标题】:beautiful soup getting tag.id 【发布时间】:2014-09-17 17:14:00 【问题描述】:

我正在尝试从页面获取 div id 列表。当我打印出属性时,我得到了列出的 ID。

for tag in soup.find_all(class_="bookmark blurb group") :
  print(tag.attrs)

结果:

'id': 'bookmark_8199633', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']
'id': 'bookmark_7744613', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']
'id': 'bookmark_7338591', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']
'id': 'bookmark_7338535', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']
'id': 'bookmark_4530078', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']

所以我知道有 ID。但是,当我打印出 tag.id 时,我只会得到一个“无”列表。我在这里做错了什么?

【问题讨论】:

【参考方案1】:

此解决方案列出了页面中所有带有 id 的标签,它也可能会有所帮助。

tags = page_soup.find_all()
for tag in tags:
    if 'id' in tag.attrs:
        print(tag.name,tag['id'],sep='->')

【讨论】:

【参考方案2】:

您可以通过将标签视为字典 (documentation) 来访问标签的属性:

for tag in soup.find_all(class_="bookmark blurb group") :
    print tag.get('id')

tag.id 不起作用的原因是它等价于tag.find('id'),结果是None,因为没有找到id 标签(documentation)。

【讨论】:

以上是关于美丽的汤越来越 tag.id的主要内容,如果未能解决你的问题,请参考以下文章

美丽的汤 KeyError 'href' 但肯定存在

美丽的汤 html csv

如何使用美丽的汤从脚本标签中提取 json?

美丽的汤和uTidy

美丽的汤解析网页

美丽的汤,使用“findAll()”时完全匹配