Python Iterator Ajuda + lxml
Pergunta
Eu tenho esse 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()
Como você pode ver o loop pára após um número de vezes que eu definir de antemão. Eu quero o loop for para parar somente depois que ele foi impresso tudo.
Solução
O CSSSelector.cssselect () retorna um iterável, assim você pode simplesmente fazer:
for element in selector:
print element.text_content()
Outras dicas
E
for e in selector:
print e.text_content()
?
Eu esperaria que você quer um loop como:
selectors = website.cssselect('.name , .name, .desc')
for selector in selectors:
print selector.text_content()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow