我在C#中构建了一个刮刀,它从链接中抓取所有页面,以及其他数据,并尝试重新创建网站。我想让它递归扫描链接内部链接内的所有链接,直到处理完所有链接(我感兴趣)。
这是我的代码:
private void get_pages_2()
{
// _repository.get_all_pages() gives me all the pages scraped so far (only from homepage)
foreach (Page p in _repository.get_all_pages())
{
try
{
do_subpage(p.get_original_url());
}
catch (System.Net.WebException)
{
}
catch (Exception e)
{
_frm.update_log("[!] Error creating subpage for: " + p.get_original_archive_url());
_frm.update_log("[!] Error: " + e.ToString());
}
}
}
private void do_subpage(string link)
{
List<Page_link> pages = new List<Page_link>();
try
{
pages = get_pages(link);
}
catch (Exception)
{
return;
}
if (pages.Count == 0)
return;
// do_subpage(...);
// should call again do_subpage(some_link), but got stuck here
}
函数do_subpage将链接作为参数,并使用get_pages函数获取我感兴趣的所有链接,现在我应该以某种方式在所有链接上调用do_subpage ......但不知道如何。
任何建议都表示赞赏。