在标记之间提取值-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>