Aide sur Python Iterator + lxml
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é.
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