Warning: session_start(): open(/var/lib/php/sessions/sess_i5jka15cf3qo5nkoi7m68oc5vb, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass WebScraper {
S baseURL;
new Set urlsSeen;
new LinkedHashSet linksToFollow;
*(S *baseURL, S startURL) {
addLink(startURL);
}
void addLinks(Iterable urls) { for (S url : urls) addLink(url); }
void addLink(S url) {
if (!urlsSeen.contains(url) && startsWith(url, baseURL))
linksToFollow.add(url);
}
bool step() {
if (empty(linksToFollow)) false;
_loadURL(popFirst(linksToFollow));
true;
}
void _loadURL(S url) {
urlsSeen.add(url);
addLinks(pairsA(webScraper_getLinks(url)));
}
run {
while (step())
print("URLs checked: " + l(urlsSeen));
print("Scraping done.");
}
}