如何从BeautifulSoup4中的html标签中找到特定的数据值?

时间:2017-11-13 23:59:20

标签: html beautifulsoup

我有以下html,我需要提取TOWN GMBH。

<span class="font-semibold" data-qa="companyName">TOWN GMBH</span>

我可以这样做:

bs = BeautifulSoup('<span class="font-semibold" data-qa="companyName">TOWN GMBH</span>', "html5lib")

bs.find(class_='font-semibold').contents

但是font-semibold不是唯一的,页面上有几个。我怎样才能专门解决数据-qa =&#34; companyName&#34; ?

1 个答案:

答案 0 :(得分:0)

您可以使用要用于过滤的属性字典:

bs.find(attrs={'class': 'font-semibold', 'data-qa': 'companyName'})

或者,使用更简洁的CSS selector

bs.select_one('.font-semibold[data-qa=companyName]')

而且,要获取文字,我会使用.get_text()方法,而不是使用.contents