C#获取页面的HTML
类别:编程学习 浏览量:719
时间:2013-9-16 C#获取页面的HTML
C#获取页面的HTMLC#提取HTML代码的方法:
public class HTMLHelper { 私有字段 /// <summary> /// 获取HTML /// </summary> /// <param name="url">地址</param> /// <param name="postData">post 提交的字符串</param> /// <param name="isPost">是否是post</param> /// <param name="cookieContainer">CookieContainer</param> public static string GetHtml(string url, string postData, bool isPost, CookieContainer cookieContainer) { if (string.IsNullOrEmpty(postData)) return GetHtml(url, cookieContainer); Thread.Sleep(NetworkDelay); currentTry++; HttpWebRequest httpWebRequest = null; HttpWebResponse httpWebResponse = null; try { byte[] byteRequest = Encoding.Default.GetBytes(postData); httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); httpWebRequest.CookieContainer = cookieContainer; httpWebRequest.ContentType = contentType; httpWebRequest.ServicePoint.ConnectionLimit = maxTry; httpWebRequest.Referer = url; httpWebRequest.Accept = accept; httpWebRequest.UserAgent = userAgent; httpWebRequest.Method = isPost ? "POST" : "GET"; httpWebRequest.ContentLength = byteRequest.Length; Stream stream = httpWebRequest.GetRequestStream(); stream.Write(byteRequest, 0, byteRequest.Length); stream.Close(); httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); Stream responseStream = httpWebResponse.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, encoding); string html = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); currentTry = 0; httpWebRequest.Abort(); httpWebResponse.Close(); return html; } catch (Exception e) { if (currentTry <= maxTry) GetHtml(url, postData, isPost, cookieContainer); currentTry--; if (httpWebRequest != null) httpWebRequest.Abort(); if (httpWebResponse != null) httpWebResponse.Close(); return string.Empty; } } /// <summary> /// 获取HTML /// </summary> /// <param name="url">地址</param> /// <param name="cookieContainer">CookieContainer</param> public static string GetHtml(string url, CookieContainer cookieContainer) { Thread.Sleep(NetworkDelay); currentTry++; HttpWebRequest httpWebRequest = null; HttpWebResponse httpWebResponse = null; try { httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url); httpWebRequest.CookieContainer = cookieContainer; httpWebRequest.ContentType = contentType; httpWebRequest.ServicePoint.ConnectionLimit = maxTry; httpWebRequest.Referer = url; httpWebRequest.Accept = accept; httpWebRequest.UserAgent = userAgent; httpWebRequest.Method = "GET"; httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); Stream responseStream = httpWebResponse.GetResponseStream(); StreamReader streamReader = new StreamReader(responseStream, encoding); string html = streamReader.ReadToEnd(); streamReader.Close(); responseStream.Close(); currentTry--; httpWebRequest.Abort(); httpWebResponse.Close(); return html; } catch (Exception e) { if (currentTry <= maxTry) GetHtml(url, cookieContainer); currentTry--; if (httpWebRequest != null) httpWebRequest.Abort(); if (httpWebResponse != null) httpWebResponse.Close(); return string.Empty; } } }
您可能感兴趣
- C#中static静态变量的用法
- c# Invoke和BeginInvoke 区别
- 安装C# Windows服务需要“设置服务登录”
- C#类的访问修饰符
- C#排序算法的比较
- C#中ArrayList与Array的区别
- C# Checklistbox的用法
- C#中IDisposable
- C# volatile与lock
- C#中is、as的区别
- C# #define条件编译
- c#中SqlBulkCopy的使用
- C# 获取磁盘空间大小
- C#中equals和==的区别有哪些
- C#中this的作用
- C#中ToString()常见的格式
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
- 刘智泰确认出演《Good Wife》 担纲男一号(刘智泰确认出演Good)
- 《傲骨之战》剧终 律政女魔头Diane,为什么是大女主天花板(傲骨之战剧终律政女魔头Diane)
- 汉族(汉族的祖先是谁)
- 中国有几个名族(中国有几个民族没列入56个民族)
- 数学语文题目(语文的数学题)
热门推荐
- python怎么安装queue(python队列Queue的详解)
- php怎么创建一个文件(PHP文件后缀不强制为.php方法)
- nginx 进程关闭(详解nginx进程锁的实现)
- laravel 用户登录认证(Laravel5.5 实现后台管理登录的方法自定义用户表登录)
- 哪些Web设计影响用户体验
- h5怎么在微信公众号发布(H5微信公众号授权的简单实现步骤)
- dedecms最新手册(在自己的php页面中使用dedecms标签的代码示例)
- nginx对静态文件开启缓存(nginx proxy_cache 缓存配置详解)
- sql如何合并多个表中的数据(SQL 列不同的表查询结果合并操作)
- 阿里云在域名控制台添加解析记录(阿里云虚拟主机怎样将子域名绑定到子目录?)