【发布时间】:2018-05-19 16:11:09
【问题描述】:
如果找到“X”,我有一个包含列表的 HTML 对象,我想打印 x 和列表中的下一项:
for string in tr[30].strings:
if string == 'X':
print(string)
print(string.next())
得到错误:
TypeError: 'NavigableString' 对象不可调用
【问题讨论】:
-
Much, much 更容易:跟踪上一项。在循环结束时将每个
string存储到previous中,然后只需检查if previous == 'X':,此时string是'X'之后的“下一个”值。 -
如果你使用
string.next而不是string.next()会发生什么? -
值得注意的是,到目前为止,没有一个答案针对
NavigableString对象...所以它们可能比给出的一般方法有更好的选择。 -
@MartijnPieters 我用了你的方法,效果很好。 >>> for string in tr[30].strings: ... if string != '\n': ... if previous == 'X': ... print(string) ... previous = string
标签: python python-3.x beautifulsoup