蟹妖,有点懒,虽然不是很有跑你的代码调试的热情。但是我建议你直接用模仿 css 选择器的 select 方法得到列表。外层遍历一次 tr ,里层遍历一次 td 就够了。不会出现空文本内容导致多出来的 NavigableString 对象。顺带,如果你不是大量的内容抓取,不在乎 Parse html 时候的极限性能的话,建议用 html5lib 。