【发布时间】:2010-10-28 10:19:15
【问题描述】:
我正在尝试在 C# 中实现一个有限的网络爬虫(仅适用于几百个站点) 使用 HttpWebResponse.GetResponse() 和 Streamreader.ReadToEnd() ,还尝试使用 StreamReader.Read() 和循环来构建我的 HTML 字符串。
我只下载大约 5-10K 的页面。
这一切都非常缓慢!例如,GetResponse() 平均时间约为半秒,而 StreamREader.ReadToEnd() 平均时间约为 5 秒!
所有站点都应该非常快,因为它们离我的位置非常近,并且拥有快速的服务器。 (在 Explorer 中几乎不需要 D/L)而且我没有使用任何代理。
我的爬虫有大约 20 个线程同时从同一站点读取。这会导致问题吗?
如何大幅减少 StreamReader.ReadToEnd 时间?
【问题讨论】:
标签: c# performance web-crawler httpwebresponse streamreader