我有这样一些草率的HTML ......
<span>STATS</span>
<table> ... </table>
<span>Page 1 of 5</span>
还有一些美丽的汤代码试图这样做..
table = soup.find('span', text='STATS').nextSibling('table')[0]
pagespan = table.nextSibling('span')
抛出异常TypeError: 'NavigableString' object is not callable
这样做的最佳方法是什么?没有元素具有DOM ID或CSS类或任何有用或唯一标识的东西。 table
中有一大堆经过测试的table
元素,但我不想要它们。只是在相同的DOM级别。
感谢。
答案 0 :(得分:2)
以下代码对我来说非常合适 -
from bs4 import BeautifulSoup
html = "<span>STATS</span><table> ... </table><span>Page 1 of 5</span>"
soup = BeautifulSoup(html)
table = soup.find('span', text='STATS').find_next_sibling('table')
pagespan = table.find_next_sibling('span')
print pagespan.text