Python Iterator Help + lxml - PullRequest
1 голос
/ 06 мая 2009

У меня есть этот скрипт-

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() 

Как видите, цикл for останавливается через несколько раз, которые я установил заранее. Я хочу, чтобы цикл for останавливался только после того, как он напечатал все.

Ответы [ 3 ]

5 голосов
/ 06 мая 2009

Метод CSSSelector.cssselect () возвращает итерацию, поэтому вы можете просто сделать:

for element in selector:
    print element.text_content()
2 голосов
/ 06 мая 2009

Я ожидаю, что вы хотите цикл for, как:

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

for selector in selectors: 
    print selector.text_content()
2 голосов
/ 06 мая 2009

А как же

for e in selector:
    print e.text_content()

...