Подтвердить что ты не робот

Веб-скребок с помощью Scala

Просто интересно, знает ли кто-нибудь о библиотеке веб-скрепок, которая использует синтаксис Scala succinct. До сих пор я нашел Chafe, но это выглядит плохо документированным и поддерживается. Мне интересно, если кто-то там соскабливает с помощью Scala и имеет совет. (Я пытаюсь интегрироваться в существующую инфраструктуру Scala, а не использовать скребок, написанный, скажем, Python.)

4b9b3361

Ответ 1

Сначала в JVM есть множество HTML-скрепок, которые вам нужно сделать, это сутенер одного из них (сутенер моей библиотеки).

Четыре из четырех:

  • HtmlUnit - эмулирует браузер и даже запускает Javascript
  • Иерихон - форматирует и идеально подходит, если вы хотите отредактировать очищенный HTML
  • NekoHtml
  • JSoup - не работает с Scala. Может работать

Я использовал Селен, но не для соскабливания. Scala имеет оболочку вокруг селена.

Я бы порекомендовал сутенерство существующей библиотеки Java над некоторой частью испеченной Scala lib.

Ответ 2

У меня нет рекомендации Scala, но для JVM в целом у меня был хороший успех:

  • JSoup Вы можете использовать CSS-селектора для "очистки" документа. Действительно приятно работать с.
  • Используйте Tagsoup, чтобы получить входной HTML-код в XML, а затем использовать XML-процессоры для "Scrape".

Маршрут Tagsoup на самом деле хорошо работает с Scala, так как Scala встроенный XML "dsl" довольно краток (если вы можете простить его первичную проблему и случайную странность API). Кроме того, Тегиoup будет обрабатывать почти любой документ мусора, который вы ему даете. Он также имеет тонкости, такие как встроенное понимание многих объектов HTML, которые другие SAXParsers будут задыхаться как незаявленные.

tl; dr - JSoup + CSS-селектора, если возможно, иначе Tagsoup + Scala XML. Если медленность в порядке, сначала добавьте метки, затем jsoup результат.

Ответ 3

Я бы порекомендовал Goose: https://github.com/jiminoc/goose

Это не как универсальное, как вам может понадобиться, но если вы очищаете содержимое статьи от популярных сайтов, это может работать из коробки. Он также обеспечивает основу для работы, если вы хотите расширить свой код, чтобы охватить другие сайты.