我有一个TR[2]
,它是动态的,我尝试这样获得它:
self.soup.select("#detail > tbody > tr > td:nth-of-type(2)")
我希望其中所有td[3]
都是动态的:
他们可能只有一个字符串,或者只有一个字符串和<a href>
,现在我想将字符串拆分为某个变量,并将该<a>
标签的“ string”拆分为另一个变量,但重要的是,td
其中没有<a>
,我希望它附加“ None”,因为两个变量应具有相同的长度和索引,以便正确“压缩”它们以备将来使用。
这是一些例子:
<td class='bolt'>
"the text I want"
<br>
<a href='Javascript:void(0);'>the other text i want</a>
</td>
在将它们追加到var时应如下所示:
event = ["the text I want"]
vessel = ["the other text i want"]
和另一个“可能的” td:
<td class='bolt'>
"another string we need"
</td>
和最终结果:
event = ["the text I want","another string we need"]
vessel = ["the other text i want", None(or empty),]
答案 0 :(得分:1)
如果可以有一个或两个文本节点(如所述),则可以使用
vessel = []
event = []
for td in self.soup.select("#detail > tbody > tr > td:nth-of-type(2)"):
event.append([i.strip() for i in td.strings if i.strip()][0])
vessel.append(([i.strip() for i in td.strings if i.strip()] + [None])[1])
print(event)
['"the text I want"', '"another string we need"']
print(vessel)
['the other text i want', None]
如果情况可能更复杂,请告诉我