我正在抓一个网站而且该网站没有以良好的方式组织信息,就像有时称为“传输”和“引擎类型”的字段,有时那些不存在,问题是每个内部的一切都是< strong> p tags , span标记,标题为传输和引擎类型
如果我告诉你,你可以更好地理解
有时会有某些字段,有时候没有
此处发动机类型和变速器存在于车辆信息中
此处车辆信息中不存在发动机类型和变速器
并且没有任何具体方法来映射所有网页的字段 如果我尝试使用此xpath
尝试访问引擎类型文本,则会切换字段'.//div[@id="result"]/div[@class="details"][2]/p[2]/text()'
最大时间我获得不同的值会导致p标签中的值被切换,所以有时我会使用此xpath进行传输,有时我会使用此xpath获取引擎类型
所以我认为他们可以通过它们旁边的跨度标题来获得所需的字段吗?
像这样<div class="details">
<p><span class="label">Chassis/VIN #:</span>017S</p>
<p><span class="label">Displacement:</span>0 </p>
<p><span class="label">Odometer:</span>79,111</p>
<p><span class="label">Condition:</span><a href="#condition-rating">2-</a>
</p>
<p><span class="label">Body Style:</span>coupe</p>
</div>
每个 p 标记都有 span 标记作为标题,有没有办法通过获取 p 标记数据span 标签标题?
例如,我可以使用 span 标记标题文字引擎类型获取 p 标记的文字引擎类型 ?
有一种方法可以在xpath中按文本获取项目
"//*[contains(text(), 'The Text Associated With The Element')]/text()"
有没有办法在这里实现这样的东西?
答案 0 :(得分:1)
您可以通过以下方式获取标题/价值对列表:
//div[@class="details"]/p//text()
输出:
Chassis/VIN #:
017S
Displacement:
0
Odometer:
79,111
Condition:
2-
Body Style:
coupe
如果您想按标题获取特定值,例如"Odometer:"
:
//div[@class="details"]/p[span="Odometer:"]/text()
输出:
79,111