我想看看C#中是否有一种方法只能下载网页的html,如果网页大小在N字节以下?我们希望存储具有特定状态代码的页面输出,但仅限于网页上的HTML小于N个字节.
使用HttpWebRequest和Method ="HEAD",您将能够获取页面标题信息,并且不会加载整个页面,这要快得多.之后你的页面的大小,你可以决定你是否想加载页面或没有,在那里你可以使用Web客户端吧
就像Jon指出的那样,内容长度可能不存在,在这种情况下,将返回-1.如果是这种情况,您将需要从那里获得整页并检查页面大小.
void Main()
{
const long PageSizeLimit = 1000000;
var url = "http://www.stackoverflow.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "HEAD";
long pageSize;
string page;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
pageSize = response.ContentLength;
}
// if content lenth is not present -> get full page
if (pageSize > 0 && pageSize < PageSizeLimit)
{
page = DownloadPage(url);
ProcessPage(page);
}
else
{
page = DownloadPage(url);
if (page.Length < PageSizeLimit)
{
ProcessPage(page);
}
}
}
public string DownloadPage(string url)
{
using (var webClient = new WebClient())
{
return webClient.DownloadString(url);
}
}
public void ProcessPage(string page)
{
// do your processing
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |