Так что я работаю над проектом Scrapy, и я получил следующий бит HTML я хотел бы, чтобы захватить, используя XPath:Как исключить некоторые элементы с помощью xpath?
<table id='foobar'>
<tr>
<td><p>....</td>
<td><div>...</div></td>
</tr>
<tr>
<td><script type='text/javascript'>...</script></td>
<td><p>.....<br></td>
</tr>
<tr>
<td><div><p>.....</div></td>
<td><script type='text/javascript'>...</script></td>
</tr>
<!--repeat for another 250 or so rows-->
</table>
Это смесь из данных таблицы в <div>
с и <p>
с , с кучей тегов скриптов, брошенных в микс. Иногда теги <script>
находятся внутри <div>
с, что делает это немного сложнее. В основном мне нужна таблица WHOLE, но не теги скрипта или их содержимое. XPath первоначально:
//table[contains(@id, 'foobar')]
, но это не исключает теги сценария, так что я изменил его на
//table[contains(@id, 'foobar')]//script/*[following-sibling::* and preceding-sibling::*]
мышления, который будет работать, но. Возможно ли это сделать в xpath, или мне просто лучше просто хватать все из таблицы, перебирать содержимое и удалять все, что имеет «text/javascript» в нем?
Так как вы используете 'Scrapy', вы можете просто извлечь детали именно то, что вы хотите в таблице с помощью XPath (исключить тег сценария), нет нужно все схватить. Но если проект меньше, получить все сначала просто неплохо. – Anzel