Reputation: 540
I have a tag and I want to get all the text inside available. I am doing this:
response.css('mytag::text')
But it is only getting the text of the current tag, I also want to get the text from all the inner tags.
I know I could do something like:
response.xpath('//mytag//text()')
But I would like to do it with css
selectors. How can I achieve this?
Upvotes: 38
Views: 29384
Reputation: 3165
Get text of only selected node.
response.css('mytag::text')
Get text of selected node and its child nodes.
response.css('mytag ::text')
See the difference between these two versions. The only difference is the space. If there is no space then only text/attributes of current nodes are returned. If there is space then it selects text/attributes of self and child nodes
response.css('h1 a::attr(href)') # only current node attribute
response.css('h1 ::attr(href)') # current node and all child nodes attribute.
Upvotes: 17
Reputation: 18799
response.css('mytag *::text')
The *
will visit all the inner tags of mytag
and ::text
will get the text of each of them
Upvotes: 60