author | Christian Urban <christian dot urban at kcl dot ac dot uk> |
Wed, 27 Nov 2013 21:36:30 +0000 | |
changeset 208 | bd5a8a6b3871 |
parent 97 | 60a3ba90dd53 |
child 254 | dcd4688690ce |
permissions | -rw-r--r-- |
7 | 1 |
val http_pattern = """\"https?://[^\"]*\"""".r |
2 |
||
3 |
def unquote(s: String) = s.drop(1).dropRight(1) |
|
4 |
||
5 |
def get_all_URLs(page: String) : Set[String] = { |
|
96
9fcd3de53c06
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
93
diff
changeset
|
6 |
http_pattern.findAllIn(page).map(unquote).toSet |
7 | 7 |
} |
8 |
||
9 |
def crawl(url: String, n: Int) : Unit = { |
|
10 |
if (n == 0) () |
|
11 |
else { |
|
96
9fcd3de53c06
updated
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
93
diff
changeset
|
12 |
println(s"Visiting: $n $url") |
97
60a3ba90dd53
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
96
diff
changeset
|
13 |
for (u <- get_all_URLs(get_page(url))) |
60a3ba90dd53
added
Christian Urban <christian dot urban at kcl dot ac dot uk>
parents:
96
diff
changeset
|
14 |
crawl(u, n - 1) |
7 | 15 |
} |
16 |
} |
|
17 |