現在、HTML の形式がかなり不適切な Web サイトをスクレイピングしようとしています (多くの場合、終了タグが欠落している、クラスや ID が使用されていないため、必要な要素に直接移動するのが非常に難しいなど)。私はこれまで BeautifulSoup を使用してある程度の成功を収めてきましたが、ときどき (非常にまれですが)、BeautifulSoup が (たとえば) Firefox や Webkit とは少し異なる HTML ツリーを作成するページに出くわします。HTML のフォーマットがあいまいなままであるため、これは理解できますが、Firefox や Webkit が生成するのと同じ解析ツリーを取得できた場合、物事をより簡単に解析できるようになります。問題は通常、サイトが<b>
タグを 2 回開き、BeautifulSoup が 2 番目の<b>
タグを検出するとすぐに最初のタグを閉じ、Firefox と Webkit がそのタグをネストするようなものです。<b>
タグ。
FirefoxまたはWebKitによって生成された解析ツリーを再現できるPython(または他の言語(私は絶望的になっています))のWebスクレイピングライブラリはありますか(または、あいまいな場合は少なくともBeautifulSoupより近くなります)。