Вы будете перестраивать колесо, чтобы быть уверенными. Но вот основы:
Помещенный они в персистентное устройство хранения данных, таким образом, можно остановить и запустить поисковый робот, не теряя состояние.
Алгоритм:
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
}
}
}
Scala.io ._
- это простой взлом, созданный с единственной целью поддержки библиотеки XML и компилятора. Он плохо спроектирован и страдает множеством проблем. Scala 2.8 будет предполагать его улучшенную версию, хотя вряд ли что-то особенное.
Заинтересованные стороны постоянно прилагают усилия для разработки надежной библиотеки ввода-вывода Scala. Он нацелен на то, чтобы извлечь уроки, извлеченные из редизайна ввода-вывода JDK7, и в то же время предоставить Scala-ish API.
Между тем ... используйте библиотеки Java всякий раз, когда ваше приложение сталкивается с проблемами проектирования существующей библиотеки.
Работает в Scala 2.8.x с небольшими изменениями. "getLines" -> "getLines ()"
...
src.getLines().foreach(l => print(l))
...
scala.io.Source в 2.8.x лучше продуман, чем его аналог в 2.7.x, и он правильно закрывает InputStream.
Насколько я могу сказать IO.Source, все еще разбито в 2.8 (соединения утечны и т. Д.), поэтому люди должны быть обескуражены из этого.
Как предложил Давид, до того, как замена Lib http://github.com/scala-incubator/scala-io (вероятно, после 2.8) Лучший выбор - реле на чистых Java Libs Как Apache Commons-io и т. Д.