在标记之间提取值-python xpath

在标记之间提取值-python xpath,python,xpath,scrapy,Python,Xpath,Scrapy,我正在尝试提取页面的一部分,其结构如下: <div class="entry"> <span>Title</span> <h2>Title1</h2> <p>Content1 details</p> <ul> <li>Content1 list</li> </ul> <p>

我正在尝试提取页面的一部分,其结构如下:

<div class="entry">
     <span>Title</span>

     <h2>Title1</h2>
     <p>Content1 details</p>
     <ul>
          <li>Content1 list</li>
     </ul>
     <p>More content1 details</p>

     <h2>Title2</h2>
     <p>Content2 details</p>
     <p>More content2 details</p>
     <p>More content2 details</p>
</div>

标题
标题1
内容1详细信息

  • 目录1
更多内容1详细信息

标题2 内容2详细信息

更多内容2详细信息

更多内容2详细信息

我想将标题1和标题2之间的所有标记提取到列表中。以及标题2后的所有标签到另一个列表

是否可以将某种正则表达式与xpath一起使用?如何实现这一点?

联合收割机和轴。来自以下站点的演示:

[1]中的
:对于响应中的项。xpath(“/*[前面的同级::h2='Title1'和后面的同级::h2='Title2']”)。extract():
…:打印(项目)
...:     
内容1详细信息

  • 目录1
更多内容1详细信息


可能使用
beautifulsoup
?假设您正在查找元素而不是标记。比如,您对
结束标记不感兴趣。
In [1]: for item in response.xpath("//*[preceding-sibling::h2 = 'Title1' and following-sibling::h2 = 'Title2']").extract():
   ...:     print(item)
   ...:     
<p>Content1 details</p>
<ul>
      <li>Content1 list</li>
</ul>
<p>More content1 details</p>