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.

È stato utile?

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
scroll top