2016-06-29 2 views
-2

С помощью друга я сделал сценарий, чтобы извлечь все спецификации и функции со страниц, таких как http://www.carwale.com/mercedesbenz-cars/e-class/e63amg-3049/ , он работает, но не идеально.XPATH для извлечения данных с CarWale.com?

Он сказал мне использовать XPath //tr[contains (.,"FEATURE NAME")]/td[2], но один из них невозможно выбрать, используя //tr[contains (.,"Display")]/td[2], он извлекает 4 функции, содержащие слово Display. Есть ли способ выбрать только тот, который помечен точно для отображения?

<td>Trip Meter</td><td>Multi-Function Display </td> 
<td>Heads Up Display (HUD)</td><td>No </td> 
<td>Display</td><td>LCD Display </td> 
<td>Display Screen for Rear Passengers</td><td>No </td> 

Я также извлекаемые имена автомобиля цвета с использованием XPath //div[@class='colorName']

Я хочу также значение RGB цвета автомобиля, или весь код стиля и удалить ненужный код с помощью поиска/замены, то, что XPath мне нужно?

<div class="colours" style="background-color: #040404; height: 30px; width: 130px; margin: 7px"></div> 
+0

Чтобы двойников 'тд' теги которые содержат отображение в тег 'td', который содержит отображение, вы можете сделать // // tr/td [contains (., 'Display')]/next-sibling :: td [contains (., 'Display')] ' –

+0

Ничего не извлечено, [INVALID XPATH EXPRESSION], я все еще жду g для кого-то, кто поможет мне. – Future

ответ

0

Extract 'тд' тег, содержащий 'Display', если это предшествующая родственный содержит 'Display':

//tr/td[contains(.,'Display')]/following-sibling::td[contains(.,'Display')] 

Extract RGB шестнадцатеричная строка:

//div/substring-before(substring-after(@style,'background-color: '),';') 
+0

Расширение XPath Helper в Chrome говорит [INVALID XPATH EXPRESSION] в RGB one и [NULL] на другом. – Future

+0

Я не знаком с помощником XPath, я протестировал эти примеры с http://www.xpathtester.com/xpath (выбран XPath 2.0) против содержимого HTML с http://www.carwale.com/mercedesbenz- автомобили/е-класс/e63amg-3049 / –

Смежные вопросы