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 關注
- 181 瀏覽
添加回答
舉報