提取两个lxml标记之间的所有内容Python

问题描述 投票:0回答:1

考虑以下html片段

<html>
  .
  .
  .
  <div>
    <p> Hello </p>
    <div>
      <b>
        Text1
      </b>
      <p>
        This is a huge paragraph text
      </p>
       .
       .
       .
     </div>
  </div>
  .
  .
  .
  <div>
    <i>
      Text2
    </i>
  </div>
  
 
  
      
  
  

让我们说,我需要提取Text1Text2中的所有内容,包括标签。使用几种方法,我已经能够提取这两个标签,即它们的唯一ID。

基本上,我有2个Element.etree元素,分别对应于我需要的两个标签。

如何提取两个标签之间的所有内容?

((我想到的一种可能的解决方案是找到两个共同祖先标签,并执行iterwalk()并在Element1处开始提取,并在2处停止。但是,我不确定这是怎么回事)任何解决方案将不胜感激。

[请注意,我已经找到了我需要的两个标签,并且我没有在寻找找到那些标签的解决方案(例如,使用xpath)

编辑:我想要的输出是

      <b>
        Text1
      </b>
      <p>
        This is a huge paragraph text
      </p>
       .
       .
       .
     </div>
  </div>
  .
  .
  .
  <div>
    <i>
      Text2
    </i>

[请注意,我不介意最初的2个<div>标签,但不希望使用Hello。最后的结束标记也是如此。我对中间的内容最感兴趣。

python html tags lxml
1个回答
0
投票

您可以使用Beautiful Soup 4来做到这一点。似乎您想要多个div的内容,因此我将相应地写出我的答案以及其他一些片段以了解用法。我还对您的数据进行了重新格式化(找出所有间隔),以使输出更易理解。

© www.soinside.com 2019 - 2024. All rights reserved.