Python Iterator Help + lxml
Domanda
Ho questo 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()
Come puoi vedere, il ciclo for si interrompe dopo un numero di volte che ho impostato in precedenza. Voglio che il ciclo for si fermi solo dopo aver stampato tutto.
Soluzione
Il metodo CSSSelector.cssselect () restituisce un iterabile, quindi puoi semplicemente fare:
for element in selector:
print element.text_content()
Altri suggerimenti
Che dire di
for e in selector:
print e.text_content()
Mi aspetto che tu voglia un ciclo for come:
selectors = website.cssselect('.name , .name, .desc')
for selector in selectors:
print selector.text_content()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow