遍历beautifulsoup4对象的正确方法

时间:2015-06-16 22:23:10

标签: python python-3.x beautifulsoup

我有这样一些草率的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级别。

感谢。

1 个答案:

答案 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