我正在尝试创建一个网站抓取工具。它将从许多网站检索一些数据 有时如果我只加载网页的1000个第一个字节,我可以看到我在寻找什么 这是我的代码:
request = (HttpWebRequest)WebRequest.Create("http://example.com");
var response = (HttpWebResponse)request.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
当我调用request.GetResponse()时,它将加载整个页面(例如4000字节),但我正在寻找的数据是前1000个字节。当我调用ReadToEnd()时,它将从RAM读取所有接收到的数据。但整个数据从网站发送到我的电脑!我不想接收所有字节,我只需要第一个N字节。 如果我能做到这一点,我就可以节省许多互联网流量。 你能帮助我吗?我怎么能这样做?
答案 0 :(得分:1)
使用StreamReader.Read,例如
StreamReader sr = new StreamReader(response.GetResponseStream());
char[] c = new char[1000]; // 1000 bytes
sr.Read(c, 0, c.Length);
string responseString = new string(c);