我有以下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; ?
答案 0 :(得分:0)
您可以使用要用于过滤的属性字典:
bs.find(attrs={'class': 'font-semibold', 'data-qa': 'companyName'})
或者,使用更简洁的CSS selector:
bs.select_one('.font-semibold[data-qa=companyName]')
而且,要获取文字,我会使用.get_text()
方法,而不是使用.contents
。