public function crawl_chapter($v) { $ifx = Text::create($v['infix'])->pad(3)->to_s(); $p = new Page($v['url']); // ada dua kemungkinan, 1 vol berisi n chap atau 1 chap saja $p->go_line_or(array('data[volumechapter]', 'data[pages]')); if ($p->curr_line()->contain('data[volumechapter]')) { $volchaps = array(); do { $line = $p->curr_line(); if ($line->contain('</option>')) { $volchaps[$line->cut_between('value="', '"')->to_s()] = $line->cut_between('>', '</option')->to_s(); } } while (!$p->next_line()->contain('</select><br')); // traverse per chapter foreach ($volchaps as $key2 => $val2) { $url2 = dirname($v['url']) . '/' . $key2; $this->crawl_page($url2, $ifx); } } else { if ($p->curr_line()->contain('data[pages]')) { $this->crawl_page($v['url'], $ifx); } } }