Nodejs と Cheerio を使用して、表形式のデータを含む純粋な静的 html ページをスクレイピングしようとしています。しかし、問題は、ページが適切な HTML DOM を持っていないことです。つまり、閉じられていない開始タグがたくさんあります。他にも開始の</table>
ない終了タグ ( ) があります。
サンプル コード (警告: コードは実際のサンプルに近く、html は壊れています)
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF" text="#000000" link="#003399" vlink="#003399" alink="#FF8000">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td bgcolor="#445BC6">hii</td></tr>
<tr><td></td></tr>
<tr>
<td align="right" bgcolor="#D9D9E8" width="100%">
<p class="menu"><b><font color="#000000"><a href="details.php?type=contact&npo_id=18430">Individuals</a></font></b>
</td>
</tr>
</table>
<P>
<TABLE CELLPADDING=8><TR><TD> </TD><TD>
<TABLE CELLPADDING=8 STYLE="border-collapse: collapse" BORDER=1 WIDTH=80% ALIGN=cemter>
<TR><TD BGCOLOR="D8D8C4" VALIGN=top ALIGN=right><P><B>Data 1</B></TD>
<TD><P><B>Data 2</B></TD>
</TR>
<TR><TD BGCOLOR="D8D8C4" VALIGN=top ALIGN=right><P><B>Data 3</B></TD>
<TD><P>Data 4</TD>
</TR>
</TABLE>
</TD></TR></TABLE> <tr>
<td width="100%" valign="bottom" colspan="2" align="center">
<p>
<a href="#top">another dirty content</a><br>
<a href="#top"><font color="#000000">table is wrong</font></a></p>
</td>
</tr></table></div>
ご覧のとおり、閉じていない P タグがあります。下部には、
開いていない</table>
&タグがあります。</div>
では、cheerio & nodejs を使用して Data1、Data2、Data3、Data4 をフェッチするにはどうすればよいですか? そのようなデータを解析するのに効率的な他のライブラリも実行します
編集(解決策):問題は解決しました。私がしたことは、htmlタグを小文字に変換しただけで、うまくいきました..小文字が重要な理由はわかりませんが、cheerioではうまくいきました.