【发布时间】:2017-07-06 20:18:22
【问题描述】:
我正在抓取一个网站,但该网站没有以良好的方式组织信息,例如有时有称为“传输”和“引擎类型”的字段,有时这些字段不存在,问题是每个内容都在里面 p 标签,带有 span 标签,其标题类似于 Transmission 和 Engine Type
在这里,如果我给你看,你会更好地理解它
有时有某些字段,有时没有
此处的发动机类型和变速器显示在车辆信息中
车辆信息中不存在发动机类型和变速箱
并没有任何具体的方法来映射所有页面的字段 如果我尝试使用此 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 标签标题文本 engine type 获取 p 标签的文本 engine type ?
有一种方法可以像这样在 xpath 中通过文本获取项目
"//*[contains(text(), 'The Text Associated With The Element')]/text()"
有没有办法在这里实现这样的东西?
【问题讨论】:
标签: python html xml xpath css-selectors