我有一些草率的HTML,像这样...
<span>STATS</span>
<table> ... </table>
<span>Page 1 of 5</span>一些Beautiful Soup代码试图做到这一点..
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级别上的东西。
谢谢。
发布于 2015-06-17 06:33:48
下面的代码对我来说工作得很好-
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.texthttps://stackoverflow.com/questions/30879290
复制相似问题