Предположим, что у меня есть таблица HTML со следующими строками,фильтр на основе Дяди в XPath
...
<tr>
<th title="Library of Quintessential Memes">LQM:</th>
<td>
<a href="docs/lqm.html"><b>Intro</b></a>
<a href="P/P79/">79</a>
<a href="P/P80/">80</a>
<a href="P/P81/">81</a>
<a href="P/P82/">82</a>
</td>
</tr>
<tr>
<th title="Library of Boring Books">LBB:</th>
<td>
<a href="docs/lbb.html"><b>Intro</b></a>
<a href="R/R80/">80</a>
<a href="R/R81/">81</a>
<a href="R/R82/">82</a>
<a href="R/R83/">83</a>
<a href="R/R84/">84</a>
</td>
</tr>
...
Я хотел бы, чтобы выбрать все <a>
элементы в <td>
элемент которого связан <th>
«s текст находится в небольшом наборе фиксированных заголовков (например, LQM, LBR и RTT). Как я могу сформулировать это как запрос XPath?
EDIT: Я использую Scrapy, набор инструментов для очистки Python, поэтому, если проще рассчитать этот запрос как набор меньших запросов, я был бы более чем счастлив использовать это. Например, если бы я мог выбрать все элементы <tr>
, чей первый дочерний элемент <th>
соответствует регулярному выражению, затем выберите все <a>
потомков оставшихся <tr>
элементов, которые были бы великолепными.
Спасибо! Это, безусловно, работает, но это действительно лучший способ? – duckworthd
См. [Этот ответ] (http://stackoverflow.com/a/356777/4525), если вы используете XPath 2.0. В противном случае, да, я думаю, что это лучший способ. – harpo
Также обратите внимание, что я обновил более короткую версию, чем моя первая. – harpo