June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -0,0 +1,45 @@
// version 1.2.0
import java.net.URL
val rx = Regex("""<div class=\"yst result\">.+?<a href=\"(.*?)\" class=\"\">(.*?)</a>.+?class="abstract ellipsis">(.*?)</p>""")
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<YahooResult>
get() {
val list = mutableListOf<YahooResult>()
for (mr in rx.findAll(content)) {
val title = mr.groups[2]!!.value.replace("<b>", "").replace("</b>", "")
val link = mr.groups[1]!!.value
val text = mr.groups[3]!!.value.replace("<b>", "").replace("</b>", "")
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<String>) {
for (page in 0..1) {
val x = YahooSearch("rosettacode", page)
println("\nPAGE ${page + 1} =>")
for (result in x.results.take(3)) println(result)
}
}