if (String.IsNullOrEmpty(strUrl))      { return "抓取地址为空!"; } HttpWebRequest req = null; HttpWebResponse resp = null;Stream stream = null;StreamReader read = null; try {req = (HttpWebRequest)HttpWebRequest.Create(strUrl); req.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1";req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; req.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"); req.ContentType = "text/html"; req.Timeout = 20000; // 设置访问来源地址,避免被检测到非本地址访问 if (String.IsNullOrEmpty(referer)) { req.Referer = req.RequestUri.Host; } else { req.Referer = referer; } // 设置 cookie 验证信息 CookieContainer cc = new CookieContainer();req.CookieContainer = cc;foreach (Cookie cook in cookies) { Cookie c = new Cookie(cook.Name, cook.Value); if (cookieDomain != null) c.Domain = cookieDomain; cc.Add(c); } resp = (HttpWebResponse)req.GetResponse();Encoding enc; // 解决 .NET 编码识别错误的问题 if ("ISO-8859-1" == resp.CharacterSet){ // 使用指定的编码格式校正enc = encoding; } else{ // 自动使用识别出来的编码格式 enc = Encoding.GetEncoding(resp.CharacterSet);} //if (isAjax) //{ // return GetAjaxUseWebBrowser(strUrl); //} string sHTML = string.Empty; // 从网站Url获取内容流 stream = resp.GetResponseStream(); // 判断内容是否使用gzip压缩 if (resp.ContentEncoding.ToLower().Contains("gzip")) { // 设置gzip解压缩stream = new GZipStream(stream, CompressionMode.Decompress);read = new StreamReader(stream, enc); sHTML = read.ReadToEnd(); } else { string sChartSet = "";read = new StreamReader(stream, enc);sHTML = read.ReadToEnd(); // 获取内容使用的编码格式 Match charSetMatch = Regex.Match(sHTML, "charset=(?<code>[a-zA-Z0-9\\-]+)", RegexOptions.IgnoreCase); sChartSet = charSetMatch.Groups["code"].Value;//if it's not utf-8,we should redecode the html. Regex rx = new Regex("([\u4e00-\u9fa5]{2,4})"); // 如果内容为UTF-8编码格式则进行再次转码if (!rx.IsMatch(sHTML)) { if (!string.IsNullOrEmpty(sChartSet.Trim()))sHTML = Encoding.GetEncoding(sChartSet).GetString(enc.GetBytes(sHTML));} } // 去除换行符 sHTML = sHTML.Replace("\n", "").Replace("\r", "").Replace("\t", ""); // 设置抓取任务状态为 1:=成功 crawlerState = IWOMWebCrawlerDbLayer.Common.CrawlerState.Success; return sHTML;} catch (Exception ex) {  } return "";

网页内容若使用gzip压缩--获得页面源码相关推荐

  1. selenium3 + python - page_source页面源码

    前言: 有时候通过元素的属性的查找页面上的某个元素,可能不太好找,这时候可以从源码中爬出想要的信息.selenium的page_source方法可以获取到页面源码. 本次以博客园为例,先爬取页面源码, ...

  2. html5软件下载页面源码

    简介: 高端大气响应式软件下载页面源码,适用于软件下载,可用于官网页面.喜欢的下载保存! 网盘下载地址: http://kekewl.org/WRfLuciEL330 图片:

  3. 一款好看新颖的404页面源码

    介绍: 一款好看新颖的404页面源码 网盘下载地址: http://kekewl.net/cBKSw324y3s0 图片:

  4. 带翻转特效的会员登录注册html页面源码

    大家好,今天给大家介绍一款,带翻转特效的会员登录注册html页面源码(图1).送给大家哦,获取方式在本文末尾. 图1 点击登录和注册切换时,带翻转特效(图2) 图2 源码完整,需要的朋友可以下载学习( ...

  5. HTML超好看樱花飘落404页面源码+带时间

    正文: HTML超好看樱花飘落404页面源码+带时间,上传服务器解压就行,新增: 樱花飘落,音乐播放器,随机一言. 程序: wwreg.lanzoui.com/i5Pll07ibafc 图片:

  6. html透明表单登录注册页面源码

    大家好,今天给大家介绍一款,html透明表单登录注册页面源码(图1).送给大家哦,获取方式在本文末尾. 图1 自适应页面,适合于各种分辨率(图2) 图2 部分源码: <!doctype html ...

  7. 通用的综合大数据数据可视化展示html页面源码

    大家好,今天给大家介绍一款,通用的综合大数据数据可视化展示html页面源码(图1).送给大家哦,获取方式在本文末尾. 图1 带区域地图(图2) 图2 动态图表(图3) 图3 各类统计图数据展示十分丰富 ...

  8. 扁平风轮播图大屏展示html页面源码

    大家好,今天给大家介绍一款,扁平风轮播图大屏展示html页面源码(图1).送给大家哦,获取方式在本文末尾. 图1 可以点击图片区域进行图片轮播切换(图2) 图2 可以点击左右按钮进行图片轮播切换(图3 ...

  9. 15种可切换404自适应页面源码

    介绍: 15种可切换404页面源码 共15种页面双端自适应404页面 可切换的仅仅为图片资源 网盘下载地址: http://kekewl.org/aqPa1I1z6fb0 图片:

最新文章

  1. 收藏 | 多目标跟踪(MOT)入门
  2. Latex快速入门, Windows 安装使用编译技巧归纳
  3. HP笔记本 CQ41全系列系统解决方案
  4. 双向广搜 8数码问题
  5. 日常spoken英语学习
  6. php foreach用法和实例
  7. Silverlight 2.0的了解
  8. 工信部BIM工程师系列发布测评考试大纲
  9. 服务器远程开多个桌面,远程桌面多开,远程桌面多开的工具介绍,操作方法
  10. 央行发布2020年规章制定计划 涉及个人金融信息保护、征信业务
  11. ant design vue table 高度自适应_对比1万2千个Vue.js开源项目发现最实用的 TOP45!火速拿来用!...
  12. 主图指标,原创极强黄点,将军柱和黄金柱都是3日的
  13. 云音乐小程序开发知识小记(上)
  14. 华硕Android原始密码,华硕路由器默认密码是多少?ASUS路由器初始密码介绍
  15. Oracle获取本月第一天及最后一天
  16. uni-app分享app和公众号遇到的坑(仅个人之见,如有错误请给指出)
  17. 怎么将某个页面,保存成一个长图?
  18. 正则表达式在shell中使用的方法与案例
  19. VueHub:我用 ChatGPT 开发的第一个项目,送给所有 Vue 爱好者
  20. Maven打包跳过单元测试

热门文章

  1. 【51NOD-0】1011 最大公约数GCD
  2. linux安装nfs服务器
  3. lintcode:子数组之和为0
  4. puppet报告系统 dashboard
  5. vue-cli的webpack模板项目配置文件说明
  6. redis 之 ae 模型测试
  7. 第二章 Jackson属性名转换+属性忽略
  8. Dubbo入门和应用
  9. 开源项目ActiveAndroid简述增、删、改、查
  10. [轉]function, new function, new Function