2 回答
TA贡献1859条经验 获得超6个赞
如果您有BS4 4.7.1或更高版本,您可以尝试以下代码。
尝试以下CSS选择器,它将识别td标签下的所有强标签conatins : ,然后获取父标签td,然后用于contents[-1]获取值
代码:
html='''<td><strong>Track Rating:</strong> GOOD</td>
<td></td>
<td><strong>Gross Time:</strong> 1:56:5</td>
<td><strong>Mile Rate:</strong> 1:56:5</td>'''
soup=BeautifulSoup(html,'html.parser')
for item in soup.select('td>strong:contains(":")'):
print(item.parent.contents[-1].strip())
输出:
GOOD
1:56:5
1:56:5
next_element或者,您也可以在找到强标签后使用。第next_element一个是强标签,第二个next_element打印强标签后的值
html='''<td><strong>Track Rating:</strong> GOOD</td>
<td></td>
<td><strong>Gross Time:</strong> 1:56:5</td>
<td><strong>Mile Rate:</strong> 1:56:5</td>'''
soup=BeautifulSoup(html,'html.parser')
for item in soup.select('td>strong:contains(":")'):
print(item.next_element.next_element.strip())
输出:
GOOD
1:56:5
1:56:5
TA贡献1875条经验 获得超3个赞
尝试使用。
from bs4 import BeautifulSoup
html = """<td><strong>Track Rating:</strong> GOOD</td>
<td></td>
<td><strong>Gross Time:</strong> 1:56:5</td>
<td><strong>Mile Rate:</strong> 1:56:5</td>"""
soup = BeautifulSoup(html, 'html.parser')
for td in soup.find_all('td'):
if td.find('strong'): #Check for `strong` tag
if td.strong.text == 'Track Rating:':
print(td.find(text=True, recursive=False)) #Get direct text
输出:
GOOD
- 2 回答
- 0 关注
- 129 浏览
添加回答
举报