EDIT: Спасибо всем за очень полезные ответы. В самом деле, как было сказано в ответах на этот пост, в school_list на самом деле не было сотен пунктов списка, а всего четыре. Это не помешало school.text захватить все сотни мест в тех четырех элементах, которые включали текст названия школы.
Исходное сообщение: Я пытаюсь перебрать каждое название школы на веб-странице, содержащей сотни названий школ, и добавить название каждой школы в список под названием list_of_names . Я использую библиотеку Python Selenium для доступа к веб-странице и нахожу элемент HTML, содержащий список названий школ.
driver.get('https://www.illinoisreportcard.com/SearchResult.aspx?SearchText=$high%20school$&type=NAME#High-schools')
school_list = driver.find_elements_by_class_name('container.col-sm-12.col-md-12')
list_of_names = []
for school in school_list:
try:
name = school.text
print(name)
list_of_names.append(name)
except selenium.common.exceptions.NoSuchElementException:
pass
Как вы можете видеть ниже, я включил Первые три из сотен результатов l oop успешно печатает названия школ и информацию об оценках (которую он получил из каждого указанного элемента кода HTML).
ALLEN JUNIOR HIGH SCHOOL
(4 - 8)
LA MOILLE CUSD 303
(BUREAU)
LA MOILLE
CENTRALIA JR HIGH SCHOOL
(4 - 8)
проблема в том, что эта строка кода - list_of_names.append (name) - это не , добавляющая каждое из названий школ в качестве элемента списка, окруженного запятыми в качестве разделителей, как я бы ожидали. Вместо этого он добавляет название каждой школы к одному элементу списка, который просто становится все длиннее и длиннее. И вместо запятых ставится '\ n'.
Ниже представлена первая строка вывода команды print (list_of_names) :
['ALLEN JUNIOR HIGH SCHOOL\n(4 - 8)\nLA MOILLE CUSD 303\n(BUREAU)\nLA MOILLE\nCENTRALIA JR HIGH SCHOOL\n(4 - 8)\nCENTRALIA SD 135\n(MARION)\
(Я пробовал версии этого для меньших списков элементов за пределами HTML и, следовательно, без необходимости использования кода Selenium try / except в самом низу здесь, и это сработало. Но это все еще не приближает меня к возможности развернуть этот код на веб-странице с названиями школ .)
Что происходит? Почему этот код не добавляет название каждой школы к list_of_names как отдельные элементы в списке?
Благодарю за любую помощь!