Я пытаюсь проанализировать большую HTML-страницу с неправильной разметкой таблицы. В таблице около 7000-10000 строк. Проблема в том, что ни один из tr
, th
, td
не закрыт. Итак, разметка такая:
<HTML>
<HEAD>
</HEAD>
<BODY>
<center>
<table border = 1>
<tr height=40><th colspan = 16><font size=4>Dummy content
<tr><th>A
<th>B
<th>C
<th>D
<th>E
<th>F
<th>G
<tr><td>A
<td>B
<td>C
<td>D
<td>E
<tr><td>A
<td>B
<td>C
<td>D
<td>E
.........
.........
</table>
</center>
</BODY>
</HTML>
Я пытался BeautifulSoup.prettify()
исправить это, но BeautifulSoup столкнулся с ошибкой максимальной глубины рекурсии. Также пробовал с lxml следующим образом:
from lxml import html
root = html.fromstring(htmltext)
print len(root.find('.//tr'))
Но он возвращает длину около 50, где на самом деле более 7000 tr
.
Есть ли хороший способ проанализировать HTML и извлечь содержимое для каждой строки?
<tr>
на</tr><tr>
, всех<th>
на<\th><th>
и т. д., что, безусловно, уменьшит количество ошибок. - person 3-14159265358979323846264   schedule 17.07.2015