#python #parsing #html-parsing
#питон #разбор #html-синтаксический анализ
Вопрос:
Проверьте мой код, пожалуйста. Я не получал ошибок, но он заполняет только 1 строку таблицы, а все остальные-нет. И для 20 строк он создает 20 таблиц, вместо того, чтобы собрать все это в 1 таблицу. И только в последней таблице он заполняет все строки до конца. код:
def get_content(html): soup = BeautifulSoup(html, 'lxml') table = soup.find_all('tbody')[0] # Grab the first table n_columns = 0 n_rows = 0 column_names = [] # Find number of rows and columns # we also find the column titles if we can for row in table.find_all('tr'): # Determine the number of rows in the table td_tags = row.find_all('td') if len(td_tags) gt; 0: n_rows = 1 if n_columns == 0: # Set the number of columns for our table n_columns = len(td_tags) columns = column_names if len(column_names) gt; 0 else range(0, n_columns) df = pd.DataFrame(columns=columns, index=range(0, n_rows)) row_marker = 0 for row in table.find_all('tr'): column_marker = 0 columns = row.find_all('td') for column in columns: df.iat[row_marker, column_marker] = column.get_text() column_marker = 1 if len(columns) gt; 0: row_marker = 1 print(df)
я получаю: 0 1 2 3 4 5
0 6 5 3 4 8 7
1 Nan Nan Nan Nan Nan Nan
0 1 2 3 4 5
0 6 5 3 4 8 7
1 5 4 7 5 2 5
Комментарии:
1. Пожалуйста, посмотрите, как правильно отформатировать код.
2. Ваш код, похоже, потерял все свои отступы; поскольку отступы имеют решающее значение для программ на Python, невозможно полностью помочь вам, пока вы не устраните эту проблему.