只是想知道是否有人知道利用 Scala 简洁语法的网络抓取库。到目前为止,我已经找到了 Chafe,但这似乎没有得到很好的记录和维护。我想知道是否有人已经用 Scala 进行了抓取并有建议。(我正在尝试集成到现有的 Scala 框架中,而不是使用用 Python 编写的爬虫。)
问问题
17894 次
3 回答
12
首先,JVM 中有大量的 HTML 抓取库,您需要做的就是对其中一个进行 pimp(pimp my library pattern)。
我用过的四个是:
- HtmlUnit - 将模拟浏览器甚至运行 Javascript
- Jericho - 如果您想编辑抓取的 HTML,则保留格式和理想的
- NekoHTML
- JSoup -
不适用于 Scala。可能工作
我使用过 Selenium,但从未用于刮擦。Scala 有一个围绕 selenium 的包装器。
我建议将现有的 Java 库放在一些半生不熟的 Scala 库上。
于 2013-02-07T20:04:50.550 回答
8
我没有针对 Scala 的建议,但对于 JVM,我在以下方面取得了很好的成功:
Tagsoup 路线实际上与 Scala 配合得很好,因为 Scala 的内置 XML“dsl”非常简洁(如果您可以原谅它的性能问题和偶尔的 API 怪异)。此外,Tagsoup 将处理您提供给它的几乎所有垃圾文档。它还具有一些细节,例如对许多 HTML 实体的内置理解,其他 SAXParsers 会因为未声明而窒息。
tl;dr - 如果可能,JSoup + CSS 选择器,否则为 Tagsoup + scala XML。如果慢没问题,先tagsoup,然后jsoup结果。
于 2013-02-07T19:56:53.873 回答
2
我推荐鹅:https ://github.com/jiminoc/goose
它不像您可能需要的那样通用,但如果您从热门网站抓取文章内容,它可能开箱即用。如果您想扩展他们的代码以覆盖其他站点,它还为您提供了一个工作框架。
于 2013-02-07T19:39:09.700 回答