Ответ 1
response.css('mytag *::text')
*
будет посещать все внутренние теги mytag
, а ::text
получит текст каждого из них
У меня есть тег, и я хочу получить весь текст внутри. Я делаю это:
response.css('mytag::text')
Но он получает только текст текущего тега, я также хочу получить текст из всех внутренних тегов.
Я знаю, что могу сделать что-то вроде:
response.xpath('//mytag//text()')
Но я хотел бы сделать это с помощью селекторов css
. Как я могу это достичь?
response.css('mytag *::text')
*
будет посещать все внутренние теги mytag
, а ::text
получит текст каждого из них
Получить текст только выбранного узла.
response.css('mytag::text')
Получить текст выбранного узла и его дочерних узлов.
response.css('mytag ::text')
Посмотрите разницу между этими двумя версиями. Единственное различие - это пространство. Если нет места, тогда возвращаются только текст/атрибуты текущих узлов. Если есть пробел, тогда он выбирает текст/атрибуты собственных и дочерних узлов
response.css('h1 a::attr(href)') # only current node attribute
response.css('h1 ::attr(href)') # current node and all child nodes attribute.