無効なHTMLを解析するための一般的なLISPパッケージ? [閉まっている
-
15-10-2019 - |
質問
学習演習として、私は一般的なLISPでWebスクレーパーを書いています。 (ラフ)計画は次のとおりです。
私はちょうど固着点に遭遇しました:私がスクレイピングしているウェブサイトは常に有効なXHTMLを生成するとは限りません。これは、ステップ3(XMLSでページを解析する)が機能しないことを意味します。そして、私は同じように正規表現を使用することを嫌います この男 :-)
だから、誰もが無効なXHTMLを解析するために共通のLISPパッケージを推奨できますか?私はに似たものを想像しています HTMLアジリティパック .netのために...
解決
「closure-html」プロジェクト(QuickLispで利用可能)は、偽のHTMLから回復し、作業できるものを生成します。 CXMLと一緒にClosure-HTMLを使用して、任意のWebページを処理するとうまく機能します。 http://common-lisp.net/project/closue/closue-html/
他のヒント
次の訪問者のために:今日はふっくらしています: https://shinmera.github.io/plump
Plumpは、HTML/XMLのようなドキュメントのパーサーであり、無効なマークアップに寛容であることに焦点を当てています。無効な属性、閉鎖の悪いタグの順序、エンコードされていないエンティティ、存在しないタグタイプ、自己閉鎖タグなどを処理できます。クラス表現にドキュメントを解析し、それを操作するための小さなドム関数のセットを提供します。ただし、自分のクラスに解析するために自由に変更できます。
そして、彼らはドキュメントを照会する他のLIBを持っています。 lquery (jquery-like)または CLSS (単純なCSSセレクター)同じ著者による。
また、CommonLisp Cookbookの小さなチュートリアルもあります。 https://lispcookbook.github.io/cl-cookbook/web-scraping.html
一般的なLisp Wikiも参照してください: http://www.cliki.net/web
ダンカン、これまでのところ、Ubuntu LinuxとWindows(7&XP)の両方でClozure Common Lispを使用して成功しているので、どこでも動作する実装を探している場合は、これを試してみることができます。