如果存在,找到同一级别的下一个兄弟

时间:2015-08-03 20:41:39

标签: python html beautifulsoup bs4 nextsibling

我很好奇是否有可能在同一级别的某些人中获得下一个兄弟。

<font face="Arial, Helvetica" size="2"><b>Current:</b>
        90
        <b>Increment : </b> 5<br>
        <b>End Date/Time : </b>06/08/2015 21:00<br>
        <b>Last Made at : </b><font size="1"><br></font>
<font ....

所以关键是有时在Last Made at : </b>之后有一个文本但有时没有。{

我这样做:

soup.find('b',text='Last Made at : ').next_sibling

问题在于,如果</b>标记后没有其他兄弟,则会从另一个我不想要的<font>标记返回一些数据。

我知道可以使用font.contents但在我的情况下会是更好的选择,比如

`tag.next_sibling_in_the_same_level_or_None`

我没有找到这个选项,所以我问在这种情况下是否有什么可以帮助我。

1 个答案:

答案 0 :(得分:1)

是你不想要的最后一个?如果是这样的话。 事实上,最后一个是你的兄弟姐妹。你可以美化和打印,你会看到。

<font face="Arial, Helvetica" size="2">
 <b>
  Current:
 </b>
 90
 <b>
  Increment :
 </b>
 5
 <br>
  <b>
   End Date/Time :
  </b>
  06/08/2015 21:00
  <br>
   <b>
    Last Made at :
   </b>
   <font size="1">
    <br/>
   </font>
   **<font>
    not need
   </font>**
  </br>
 </br>
</font>

如果你的HTML是

<font face="Arial, Helvetica" size="2"><b>Current:</b>
        90
        <b>Increment : </b> 5<br>
        <b>End Date/Time : </b>06/08/2015 21:00<br>
        <b>Last Made at : </b><font size="1"><br></font>  
**</font>**
<font ....

然后,我想你不会得到最后一个。