Question

J'ai ce script -

import lxml
from lxml.cssselect import CSSSelector
from lxml.etree import fromstring
from lxml.html import parse



website = parse('http://example.com').getroot()


selector = website.cssselect('.name')


for i in range(0,18): 
    print selector[i].text_content() 

Comme vous pouvez le constater, la boucle for s’arrête après un certain nombre de fois que j’ai réglé au préalable. Je veux que la boucle for ne s’arrête qu’après avoir tout imprimé.

Était-ce utile?

La solution

La méthode CSSSelector.cssselect () renvoie un itératif, vous pouvez donc simplement faire:

for element in selector:
    print element.text_content()

Autres conseils

Qu'en est-il de

for e in selector:
    print e.text_content()

?

Je m'attendrais à ce que vous souhaitiez une boucle for telle que:

selectors = website.cssselect('.name , .name, .desc')

for selector in selectors: 
    print selector.text_content()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top