如何在沒有標簽 a 的值的情況下從 th 獲取值
<th scope="col">1926
<sup id="cite_ref-2011CH_22-0" class="reference">
<a href="#cite_note-2011CH-22">[22]</a>
</sup>
</th>
我試過了
table = soup.find('table', {"class": "standard"})
data_th = table.find('tbody').find_all('tr', {"class": "bright"})
for tr in data_th:
th_list = tr.find_all('th')
for th in th_list:
if(th.find('a')):
print(th.text)
但最終結果是
1926[22]
1931[23]
1939[23]
我需要
1926
1931
1939
uj5u.com熱心網友回復:
一種方法是僅選擇目標的文本。
th.find(text=True, recursive=False)
例子
from bs4 import BeautifulSoup
html='''
<th scope="col">1926
<sup id="cite_ref-2011CH_22-0" >
<a href="#cite_note-2011CH-22">[22]</a>
</sup>
another text
</th>
'''
soup = BeautifulSoup(html)
for th in soup.find_all('th'):
print(th.find(text=True, recursive=False).text)
uj5u.com熱心網友回復:
我認為您正在尋找的是通過以下方式省略遞回搜索th.find(text=True, recursive=False)
我不明白你的代碼:
if(th.find('a')):
print(th.text)
方法。正如它所寫的,您似乎只想在里面有一個元素時才列印。您的描述似乎您正試圖達到相反的效果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/438977.html
上一篇:如何決議這個結果
下一篇:Python決議器層不處理空格
