【发布时间】:2021-06-18 03:17:33
【问题描述】:
我正在尝试使用 xpath 来获取两个节点之间每个节点的文本,但这有点棘手。结构有点像这样:
<table class="infobox biography vcard">
<p>
<b>Mark Hamill</b>
<span> was born in ...</span>
<i> in the early 1980s he...</i>
<a href="/some/place">Luke Skywalker</a>
</p>
<div class="toc">
我需要该段落中恰好位于表格和 div 之间的所有文本,这是我的查询 xpath 到目前为止:
//table[@class="infobox biography vcard"]/following-sibling::node()[following-sibling::div[@class="toc"]]/text()
它不会带来某些标签中的所有文本,我该如何实现?
注意: p 标签没有任何道具,但该文档中还有其他一些 p 标签
【问题讨论】:
-
是否有与此相关的网址,您是否也愿意考虑使用 bs4 的 css?
-
更新 html 代码以包含更多数据。或者至少让现有的更清晰。文本在哪里?
-
请更新您的问题,使您的 XPath 类似于您的 html 代码(现在 html 中缺少 @class 属性),并显示预期结果。
-
当然。该网址是一篇维基百科文章。网址是这个:en.wikipedia.org/wiki/Mark_Hamill
-
我刚刚编辑了 html 代码并添加了一个 URL :) @Qharr
标签: html python-3.x web-scraping xpath lxml