Извлечение данных, когда XPath совпадают - PullRequest
1 голос
/ 29 июня 2011

Я новичок в jython и scrapy, но я впечатлен возможностями, которые он имеет.Мой вопрос заключается в том, каков наилучший способ извлечения данных при одинаковых значениях XPath?

Например:

<tr>
  <td>
    <a href="/user/Bob">Bob Job</a>
  </td>
  <td>hi</td>
  <td>280.0</td>
</tr>

Мне нужно очистить информацию от всех трех полей td.Я использую firebug для извлечения XPath, который отображает мой XPath как

/ html / body / table [2] / tbody / tr / td [2] / div / table / tbody / tr [2] / td [3]

Каков наилучший способ извлечения данных при одинаковых XPath?Мне могут понадобиться только данные из td [1] и td [3].

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Вам нужно будет определить критерии для извлечения значений и поместить их в соответствующие поля элемента. например

link     = hxs.select('//td/a/href').extract()[0]
linktext = hxs.select('//td/a/text()').extract()[0]
number   = hxs.select('//td').re('\d+\.\d+')
0 голосов
/ 29 июня 2011

Копирование Firebugs xpath не всегда оптимально.

При очистке таблиц сначала найдите способ итерировать поля <TR>, такие как //table[@id='results']/tr, а затем выполните другой запрос, чтобы получить необходимые для каждой строки поля td. //td Так проще.

...