2017-07-06 111 views
2

我正在抓取一個網站,並且該網站沒有以良好方式組織的信息,例如有時稱爲「傳輸」和「引擎類型」的字段,有時候這些字段不存在而問題是一切都是每個p標籤內,具有span標記與像傳輸引擎鍵入標題Xpath獲取帶有子標籤的父標籤

在這裏你可以更好的瞭解它,如果我告訴你

有時有某些領域,有時沒有

enter image description here

這裏發動機類型和傳輸存在於車輛信息

enter image description here

這裏發動機類型和傳輸不存在於車輛信息

並沒有任何具體的方法來映射字段的所有p年齡 場被切換的原因,如果我試圖用這個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標籤具有跨度標籤作爲標題,有沒有一種方式來獲得與跨度標籤標題p標籤數據?

因此,例如,我可以得到p標籤的文本發動機類型跨度標籤標題文本發動機類型

有一種方法通過文本的XPath獲得項目這樣

"//*[contains(text(), 'The Text Associated With The Element')]/text()" 

在那裏實現這樣的事情在這裏的方法嗎?

回答

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 
+0

非常感謝安德森先生 –