Ваша проблема в том, что вы сталкиваетесь с ограничением панд read_html.
В таблице, которую вы пытаетесь проанализировать, определен "rowspan = 2", который выбрасывает read_html, как описано в этом выпуске
, одним из способов может быть написание собственного синтаксического анализаторакак описано здесь
Что, по собственным словам автора, является:
Суть того, что здесь происходит:
Сначала мы разберемсяHTML с использованием BeautifulSoup, поиск всех таблиц, затем всех строк в каждой таблице, затем каждой ячейки в каждой строке.Затем, когда мы зацикливаемся на каждой из этих ячеек, мы проверяем, есть ли какие-либо атрибуты colspan и rowspan, связанные с ячейкой - это говорит нам об измерениях ячейки.В терминах электронной таблицы вы можете подумать о значении числа строк в 2, соответствующем ячейке, объединяемой с ячейкой под ней.Информация colspan проста в использовании.Если мы зарегистрируем значение colspan больше 1, мы пропустим это количество столбцов, прежде чем начнем заполнять следующую ячейку.Информация о строках строк немного сложнее.Если мы зарегистрируем значение ряда строк больше 1, мы сохраним его в списке («skip_index»), где каждый элемент соответствует столбцу в нашей таблице.Когда цикл заполняет данные для каждой ячейки, он сначала проверяет, есть ли ненулевое значение в этом столбце skip_index;если это правда, пропускает этот столбец.С каждой итерацией строки мы увеличиваем каждый ненулевой элемент skip_index на -1, пока он не вернется к нулю.