無効なHTMLを解析するための一般的なLISPパッケージ? [閉まっている

StackOverflow https://stackoverflow.com/questions/4599900

質問

学習演習として、私は一般的なLISPでWebスクレーパーを書いています。 (ラフ)計画は次のとおりです。

  1. 使用する QuickLisp 依存関係を管理します
  2. 使用する ドラクマ ページをロードします
  3. でページを解析します XMLS

私はちょうど固着点に遭遇しました:私がスクレイピングしているウェブサイトは常に有効な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を使用して成功しているので、どこでも動作する実装を探している場合は、これを試してみることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top