Давайте предположим, что у меня есть селектор XPath, указывающий на следующий фрагмент HTML:
<div>
<p>Hello <a href="foo">fantastic</a> world</p>
<table>
<tr>
<td>first</td>
<td>row</td>
</tr>
<tr>
<td>second</td>
<td>row</td>
</tr>
</table>
</div>
Я хотел бы извлечь из него текст таким образом, чтобы игнорировать только теги <a>
, поэтому я получит:
['Hello fantastic world', 'first', 'row', 'second', 'row'].
Обратите внимание, что fantastic
был обработан так, как если бы он принадлежал тегу <p>
.
Проблема в том, что:
с selector.xpath('.//text()').extract()
, я получаю
['Hello', 'fantastic', 'world', 'first', 'row', 'second', 'row']
с 'selector.xpath(string(./)).extract()'
, я получаю
['Hello fantastic world first row second row']
Если кто-нибудь знает, как взломать это, это будет высоко ценится!