带有标题标签的BS4类

时间:2020-01-01 17:38:34

标签: python beautifulsoup python-3.8

我将如何解析一个类,使其仅使文本位于标头标记之外,或同时在列表中?

<div class="footballMatchSummaryDef"><h1>Burnley v Aston Villa</h1>English Premier League at Turf Moor</div>

我已经考虑过使用正则表达式提取,但是以为美丽的汤一定不能处理

2 个答案:

答案 0 :(得分:0)

有很多解决方案,一种是获取全文,然后根据分隔符将其拆分:

from bs4 import BeautifulSoup

txt = '''<div class="footballMatchSummaryDef"><h1>Burnley v Aston Villa</h1>English Premier League at Turf Moor</div>'''

soup = BeautifulSoup(txt, 'html.parser')

lst = soup.select_one('.footballMatchSummaryDef').get_text(separator='|').split('|')
print(lst)

打印:

['Burnley v Aston Villa', 'English Premier League at Turf Moor']

或使用bs4导航功能:

print( soup.h1.text )
print( soup.h1.find_next_sibling(text=True) )

打印:

Burnley v Aston Villa
English Premier League at Turf Moor

答案 1 :(得分:0)

感谢安德烈(Andrej),导航功能正是我所追求的,工作正常,只是刚启动python,所以所有新功能都来自php。这是我需要的下一个兄弟姐妹

print( soup.h1.find_next_sibling(text=True) )