Избавиться от rowspan Python
Подскажите, как преобразовать html-таблицу, чтобы вместо rowspan вставить дублирующие строки? Чтобы таблица была равна по строкам и столбцам. Необходимо для парсера, который данные отправит в базу данных.
<table border="1" class="tbl">
<tr>
<td>Обычная ячейка 1</td>
<td rowspan="2">Занимает 2 строки</td>
<td>Обычная ячейка 3</td>
</tr>
<tr>
<td>Обычная ячейка (1)</td>
<td>Обычная ячейка (3)</td>
</tr>
</table>
Преобразовать в
<table border="1">
<tr>
<td>Обычная ячейка 1</td>
<td>Занимает 2 строки</td>
<td>Обычная ячейка 3</td>
</tr>
<tr>
<td>Обычная ячейка (1)</td>
<td>Занимает 2 строки</td>
<td>Обычная ячейка (3)</td>
</tr>
</table>
Вот, что пробовал, ячейка из rowspan копируется, но данные не смещаются.
import requests
from pyquery import PyQuery
def formatTableHTML(destination, res_destination):
html = ""
with open(destination, 'r', encoding="utf-8") as f:
html = f.read()
doc = PyQuery(html)
table = doc('.tbl')
res_str = "<table>"
l = 0
count_row = 0
info_rowspan = {}
info = {}
for c in table('tr').items():
l += 1
pq_tr = PyQuery(c.html())
count_col = 0
for z in pq_tr('td').items():
rs = z.attr('rowspan')
if(rs == None):
info[str(count_row)+'_'+str(count_col)] = z.html()
else:
irs = int(rs)
i = count_row
while i < (count_row + irs):
info_rowspan[str(i)+'_'+str(count_col)] = z.html()
i = i + 1
count_col += 1
count_row += 1
i = 0
count_col_one = 8
while i < count_row:
res_str += '<tr>'
n = 0
while n < count_col_one:
if str(i)+'_'+str(n) in info_rowspan:
res_str += '<td>'+info_rowspan[str(i)+'_'+str(n)]+'</td>'
else:
if str(i)+'_'+str(n) in info:
res_str += '<td>'+info[str(i)+'_'+str(n)]+'</td>'
else:
res_str += '<td>-</td>'
n += 1
res_str += '</tr>'
i += 1
res_str += '</table>'
# Открываем файл в режиме записи ('w')
with open(res_destination, 'w', encoding="utf-8") as file:
# Записываем строку в файл
file.write(res_str)
formatTableHTML("file.html", "new_file.html")