我想解析一个看起来像这样的HTML代码:
<div>
<span>Current Status</span>FINAL DECISION </div>
<div>
<span>Applicant</span>GC Planning Partnership Ltd </div>
<div>
<span>Agent</span>GC Planning Partnership Ltd </div>
<div>
<span>Wards</span>Springfield Ward </div>
<div>
<span>Location Co ordinates</span>Easting 534379 Northing 187690 </div>
<div>
<span>Parishes</span> </div>
<div>
<span>OS Mapsheet</span> </div>
<div>
现在,我不想获取介于<span>
标签之间的文本,而是希望获得紧随其后的信息。从上面的例子中,我想提取像#&#34;最终决定&#34;,&#34; Springfield Ward&#34;或类似的。我是非常新的解析HTML,我不知道如何到达那里。
我会非常高兴任何提示或想法!
非常感谢!
答案 0 :(得分:2)
如果您希望span
元素后面的文字带有特定文字,您可以先按文字找到span
元素,然后获取.next_sibling
:
soup.find("span", text="Current Status").next_sibling
如果您希望循环遍历所有span
元素,并且对于每个span
元素,请获取下一个文本兄弟:
from bs4 import BeautifulSoup, NavigableString
for span in soup.find_all("span"):
next_text = span.next_sibling
if isinstance(next_text, NavigableString):
print(next_text)