// version 1.2.0 import java.net.URL val rx = Regex("""
.+?(.*?).+?class="abstract ellipsis">(.*?)

""") class YahooResult(var title: String, var link: String, var text: String) { override fun toString() = "\nTitle: $title\nLink : $link\nText : $text" } class YahooSearch(val query: String, val page: Int = 0) { private val content: String init { val yahoo = "http://search.yahoo.com/search?" val url = URL("${yahoo}p=$query&b=${page * 10 + 1}") content = url.readText() } val results: MutableList get() { val list = mutableListOf() for (mr in rx.findAll(content)) { val title = mr.groups[2]!!.value.replace("", "").replace("", "") val link = mr.groups[1]!!.value val text = mr.groups[3]!!.value.replace("", "").replace("", "") list.add (YahooResult(title, link, text)) } return list } fun nextPage() = YahooSearch(query, page + 1) fun getPage(newPage: Int) = YahooSearch(query, newPage) } fun main(args: Array) { for (page in 0..1) { val x = YahooSearch("rosettacode", page) println("\nPAGE ${page + 1} =>") for (result in x.results.take(3)) println(result) } }