Почему Scala не Получает близко базовый InputStream?

Вы будете перестраивать колесо, чтобы быть уверенными. Но вот основы:

  • список А непосещаемых URL - отбирает это с одной или несколькими начальными страницами
  • список А посещаемых URL - таким образом, Вы не бродите вокруг в кругах
  • Ряд правил для URL, Вы не интересуетесь - таким образом, Вы не индексируете целый Интернет

Помещенный они в персистентное устройство хранения данных, таким образом, можно остановить и запустить поисковый робот, не теряя состояние.

Алгоритм:

while(list of unvisited URLs is not empty) {
    take URL from list
    remove it from the unvisited list and add it to the visited list
    fetch content
    record whatever it is you want to about the content
    if content is HTML {
        parse out URLs from links
        foreach URL {
           if it matches your rules
              and it's not already in either the visited or unvisited list
              add it to the unvisited list
        }
    }
}
16
задан pjp 19 November 2009 в 12:06
поделиться

3 ответа

Scala.io ._ - это простой взлом, созданный с единственной целью поддержки библиотеки XML и компилятора. Он плохо спроектирован и страдает множеством проблем. Scala 2.8 будет предполагать его улучшенную версию, хотя вряд ли что-то особенное.

Заинтересованные стороны постоянно прилагают усилия для разработки надежной библиотеки ввода-вывода Scala. Он нацелен на то, чтобы извлечь уроки, извлеченные из редизайна ввода-вывода JDK7, и в то же время предоставить Scala-ish API.

Между тем ... используйте библиотеки Java всякий раз, когда ваше приложение сталкивается с проблемами проектирования существующей библиотеки.

16
ответ дан 30 November 2019 в 21:28
поделиться

Работает в Scala 2.8.x с небольшими изменениями. "getLines" -> "getLines ()"

...
src.getLines().foreach(l => print(l))
...

scala.io.Source в 2.8.x лучше продуман, чем его аналог в 2.7.x, и он правильно закрывает InputStream.

6
ответ дан 30 November 2019 в 21:28
поделиться

Насколько я могу сказать IO.Source, все еще разбито в 2.8 (соединения утечны и т. Д.), поэтому люди должны быть обескуражены из этого.

Как предложил Давид, до того, как замена Lib http://github.com/scala-incubator/scala-io (вероятно, после 2.8) Лучший выбор - реле на чистых Java Libs Как Apache Commons-io и т. Д.

4
ответ дан 30 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: