我已经构建了一个小爬虫,现在尝试它时,我发现在爬取某些站点时,我的爬虫使用 98-99% 的 CPU。
我曾经dotTrace
看到问题可能是什么,它指出了我的httpwebrequest
方法 - 我在stackoverflow上的一些先前问题的帮助下对其进行了一些优化......但问题仍然存在。
然后我去查看导致 CPU 负载的 URL 并发现它实际上是大小非常大的站点 - 去图 :) 所以,现在我 99% 确定它与以下代码有关:
HtmlAgilityPack.HtmlDocument documentt = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNodeCollection list;
HtmlAgilityPack.HtmlNodeCollection frameList;
documentt.LoadHtml(_html);
list = documentt.DocumentNode.SelectNodes(".//a[@href]");
我想要做的就是提取页面上的链接,所以对于大型网站.. 无论如何我可以让它不使用这么多 CPU?
我在想也许会限制我获取的东西?我在这里最好的选择是什么?
当然之前一定有人遇到过这个问题:)