У меня есть этот 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()
Как вы можете видеть, цикл for останавливается после нескольких раз, которые я задал заранее. Я хочу, чтобы цикл for остановился только после того, как он напечатал все.
Метод CSSSelector.cssselect() возвращает итерабельность, поэтому вы можете просто сделать:
for element in selector:
print element.text_content()
Я бы ожидал, что вам нужен цикл for, например:
selectors = website.cssselect('.name , .name, .desc')
for selector in selectors:
print selector.text_content()
Что насчет
for e in selector:
print e.text_content()
?
CSSSelect
, потому что вы используете методcssselect
в корневомcssselect
.