Я использую BeautifulSoup4 для анализа документа и получаю странное поведение, соответствующий фрагмент кода выглядит следующим образом:
for sale_table in sales_soup.find_all('table'):
rows = sale_table.find_all('tr')
grantor = rows[3]
Однако это дает мне исключение индекса вне диапазона. Поэтому я выполнил некоторые базовые проверки и len (rows) == 4 непосредственно до и после назначения лица, предоставляющего право (используя индекс, который не выдает исключение). Также я могу получить доступ к первому и второму элементам строк с row [0] и row [1]. Однако я могу получить доступ только к элементам 3 и 4 со строками [-1] и строками [-2], пытаясь использовать индексы, 2 или 3, или -3, или -4 выбрасывают индекс вне диапазона исключений. Кроме того, когда я отправляю file.write (str (rows)) и получаемый HTML, он точно соответствует HTML тестового документа.
Подводя итог, я могу получить доступ ко всему списку, но я бы хотел понять, почему я получаю это странное исключение.
Извините, ребята, ответ в том, что я идиот. В разметке существует несогласованная таблица, которая короче и вызывает исключение. Запуск цикла по одному показывает, что len! = 4 на каждой итерации, извините за дезинформацию. Это плохая форма, чтобы отредактировать этот вопрос, так как он неправильный?