web-dev-qa-db-fra.com

Scrapy css selector: récupère le texte de toutes les balises internes

J'ai une balise et je veux que tout le texte à l'intérieur soit disponible. Je fais ça:

response.css('mytag::text')

Mais il ne fait qu'obtenir le texte de la balise actuelle, je veux aussi obtenir le texte de toutes les balises internes.

Je sais que je pourrais faire quelque chose comme:

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

Mais je voudrais le faire avec les sélecteurs css. Comment puis-je atteindre cet objectif?

20
Jgaldos
response.css('mytag *::text')

Le * visitera toutes les balises internes de mytag et ::text obtiendra le texte de chacun d'eux

36
eLRuLL

Récupère le texte du seul nœud sélectionné.

response.css('mytag::text')

Récupère le texte du nœud sélectionné et de ses nœuds enfants.

response.css('mytag ::text')

Voyez la différence entre ces deux versions. La seule différence est l'espace. S'il n'y a pas d'espace, seuls les textes/attributs des nœuds actuels sont renvoyés. S'il y a de l'espace, il sélectionne le texte/les attributs des nœuds auto et enfant

response.css('h1 a::attr(href)') # only current node attribute

response.css('h1 ::attr(href)') # current node and all child nodes attribute.
5
Hassan Raza