بيثون مكرر مساعدة + lxml
سؤال
ولدي هذا السيناريو -
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 يتوقف بعد عدد المرات التي ذكرتها مسبقا. أريد لحلقة لوقف إلا بعد أن تمت طباعة كل شيء.
المحلول
وطريقة CSSSelector.cssselect () بإرجاع iterable، لذلك يمكنك القيام به فقط:
for element in selector:
print element.text_content()
نصائح أخرى
وماذا عن
for e in selector:
print e.text_content()
وأتوقع تريد لحلقة مثل:
selectors = website.cssselect('.name , .name, .desc')
for selector in selectors:
print selector.text_content()
لا تنتمي إلى StackOverflow