Вопрос

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

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 останавливался только после того, как он все напечатал.

Это было полезно?

Решение

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

for element in selector:
    print element.text_content()

Другие советы

Как насчет

for e in selector:
    print e.text_content()

?

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

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

for selector in selectors: 
    print selector.text_content()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top