如何使用Python Beautiful Soup获取html的标记名称?

时间:2018-11-12 22:43:10

标签: python html css beautifulsoup tags

header = head.find_all('span')

[<span itemprop="name">Raj</span>, <span itemprop="street">24 Omni  Street</span>, <span itemprop="address">Ohio</span>, <span itemprop="Region">US</span>, <span itemprop="postal">40232</span>, <span class="number">334646344</span>]

print (header[0].tag)
print(header[0].text)

####output
None
Raj
...

####Expected output
Name
Raj
...

我无法提取跨度itemprop的所有值。它使我无输出。我在做错什么吗?

谢谢, 拉吉

1 个答案:

答案 0 :(得分:2)

是的,class 'bs4.element.Tag'没有tag属性,因为Tag。从文档中:

  

您可以通过将标签视为字典来访问标签的属性。

因此,您已经获得了所有span标签的列表,现在只需遍历该列表并获取所需的属性即可(即'itemprop'):

spans = head.find_all('span')

for span in spans:
    try:
        print(span['itemprop'].decode().title() + ': ' + span.text)
    except KeyError:
        continue 

输出:

Name: Raj
Street: 24 Omni  Street
Address: Ohio
Region: US
Postal: 40232

根据需要设置输出格式或存储数据