【问题标题】:Find next sibling at the same level if exists如果存在,则查找同一级别的下一个兄弟
【发布时间】:2015-08-03 20:41:39
【问题描述】:

我很好奇是否只有在同一级别有一些兄弟姐妹时才有可能获得下一个兄弟姐妹。

<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 : &lt;/b&gt; 后面有文本,但有时没有。

我这样做:

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

问题是如果&lt;/b&gt; 标记之后没有另一个兄弟,它会从另一个&lt;font&gt; 标记返回一些我不想要的数据。

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

`tag.next_sibling_in_the_same_level_or_None`

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

【问题讨论】:

  • 在发布的 HTML sn-p 中,在&lt;/b&gt; 标记之后另一个兄弟。请注意,&lt;font size="1"&gt;&lt;br&gt;&lt;/font&gt;&lt;b&gt; 位于同一级别。

标签: python html beautifulsoup bs4 nextsibling


【解决方案1】:

是最后一个你不想要的吗?如果是这样,请参阅这些。 事实上,最后一个是 .you 的兄弟,你可以美化和打印,你会看到的。

<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 ....

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

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 2014-07-16
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多