Beautiful Soup如何获取标签的id属性?

39

我试图从页面中获取一组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时,我只得到一个"None"列表。我在这里做错了什么?

2个回答

57

你可以像访问词典一样来访问标签的属性 (文档):

for tag in soup.find_all(class_="bookmark blurb group") :
    print tag.get('id')
< p > tag.id 无法生效的原因是它等价于tag.find('id'),这会导致结果为None,因为找不到id标签(文档)。< /p >

2
这个解决方案列出了页面中所有带有id的标签,可能会对您有所帮助。
tags = page_soup.find_all()
for tag in tags:
    if 'id' in tag.attrs:
        print(tag.name,tag['id'],sep='->')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接