Scalaの簡潔な構文を利用するWebスクレイピングライブラリを誰かが知っているかどうか疑問に思います。これまでのところ、私は Chafe を見つけましたが、これは文書化が不十分で維持されているようです。 Scalaでスクレイピングを行っている人がいてアドバイスを受けていますか?(私は既存のScalaフレームワークに統合するのではなく、たとえば、Pythonで書かれたスクレーパー)
まず、JVMには大量のHTMLスクレイピングライブラリがあり、必要なのは それらの1つをpimpする(私のライブラリパターンをpimpする) です。
私が使用した4つは次のとおりです。
私はセレンを使ったことがありますが、こすることはありません。 ScalaにはSeleniumのラッパーがあります 。
既存のJavaライブラリを半分焼き上げたものよりもひっくり返すScala lib。
私はScala固有の推奨事項はありませんが、JVM全般については、次のことで大きな成功を収めています。
Tagsoupルートは実際にはScalaでうまく機能します。Scalaの組み込みXML "dsl"はかなり簡潔であるためです(perfの問題とときどき発生するAPIの奇妙さを許せば)。Tagsoupはほぼまた、他のSAXParserが宣言されていないものとして処理する多くのHTMLエンティティの組み込みの理解などの優れた機能を備えています。
tl; dr-可能な場合はJSoup + CSSセレクター、それ以外の場合はTagsoup + scala XML。遅い場合は、tagsoup最初に、次に結果をjsoupします。
私はグースをお勧めします: https://github.com/jiminoc/goose
それはあなたが必要とするかもしれないほど一般的な使用法ではありませんが、人気のあるサイトから記事のコンテンツをこする場合、それはそのままで動作するかもしれません。また、他のサイトをカバーするようにコードを拡張する場合に、そこから作業するためのフレームワークも提供します。