Как выделить весь текстовый контент внутри div, используя XPath? - PullRequest
0 голосов
/ 30 августа 2018

Я хочу выделить весь текст внутри div без учета тегов внутри.

<div>
<p>some text here <a href="">a link here  <span>span here<span></a></p>
</div>

Мне нужно получить результат как

текст здесь, ссылка здесь, здесь

Я пробовал это

response.xpath('//div/text()')

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Попробуйте string() с XPath:

response.xpath('string(//div)').extract_first()
0 голосов
/ 30 августа 2018

Вы запрашиваете строковое значение этого div:

string(/div)

Или, если вы хотите, чтобы пробелы были обрезаны с концов и объединены внутри:

normalize-space(/div)
0 голосов
/ 30 августа 2018

проверьте следующий код для уточнения

response.xpath('//div//text()')

и попробуйте следующее для требуемого вывода

" ".join([i.strip() for i in tree.xpath('//div//text()') if i.strip()])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...