gpt4 book ai didi

c# - HtmlAgilityPack 和大型 HTML 文档

转载 作者:行者123 更新时间:2023-11-30 22:24:22 25 4
gpt4 key购买 nike

我构建了一个小爬虫,现在在试用时我发现在爬取某些网站时我的爬虫使用 98-99% 的 CPU。

我使用 dotTrace 来查看可能是什么问题,它指出了我的 httpwebrequest 方法 - 我在之前的一些问题的帮助下对其进行了一些优化stackoverflow.. 但问题仍然存在。

然后我去看看是什么 URL 导致了 CPU 负载,发现它实际上是规模非常大的网站 - 看图:)所以,现在我 99% 确定它与以下代码有关:

HtmlAgilityPack.HtmlDocument documentt = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNodeCollection list;
HtmlAgilityPack.HtmlNodeCollection frameList;

documentt.LoadHtml(_html);
list = documentt.DocumentNode.SelectNodes(".//a[@href]");

我想做的就是提取页面上的链接,所以对于大型网站.. 无论如何我可以让它不使用那么多 CPU 吗?

我在想也许可以限制我获取的内容?我最好的选择是什么?

肯定有人以前遇到过这个问题:)

最佳答案

您是否尝试过放弃 XPath 并使用 LINQ 功能?

var list = documentt.DocumentNode.Descendants("a").Select(n => n.GetAttributeValue("href", string.Empty);

这将拉取所有 anchor 标记的 href 属性列表作为 List

关于c# - HtmlAgilityPack 和大型 HTML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com