asp.net抓取网页html源代码,我想对于任何一个asp.net程序员来说都不再陌生,这是一个非常简单容易就能实现的功能。下面便是一个通用的asp.net获得网页源代码的程序。

首先引用

using System.Net;
using System.IO;
using System.Text;

程序代码如下:

string szUrl = "http://www.webkaka.com/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(szUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream hwStream = response.GetResponseStream();
Encoding eData = Encoding.GetEncoding("utf-8");
StreamReader sData = new StreamReader(hwStream, eData);
string szHTML = sData.ReadToEnd();

szHTML就是抓到的网页html源代码了。得到源代码后,就可以进一步各需所用了。

为什么抓取某些页面失败?

不过,有时候我们会发现,这个程序在抓取某些页面时,是获不到所需的内容的,有时候甚至返回404的错误提示页,这是什么原因呢?

其实,很多人都忽略了一个问题,那就是服务器默认的浏览器问题。有的服务器默认的浏览器是手机浏览器,那么,当我抓取这个服务器下的网页是,就相当于用手机浏览器来打开网页,而如果要抓取的目标网页没有相应的手机网页的话,就会返回意想不到的结果,有的返回404错误提示页,有的返回403错误提示页,有的甚至跳转到其他网页去了。

如何解决这个问题?

要解决这个问题,其实很简单,我们只需要在程序里指定使用的浏览器的即可,即是设置UserAgent的参数值。

改进后的代码如下:

string szUrl = "http://www.webkaka.com/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(szUrl);
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream hwStream = response.GetResponseStream();
Encoding eData = Encoding.GetEncoding("utf-8");
StreamReader sData = new StreamReader(hwStream, eData);
string szHTML = sData.ReadToEnd();

上述程序粗体字就是指定使用的浏览器来读取网页内容,这样,就不会出现抓取不到目标网页的情况了。

转载于:https://www.cnblogs.com/sunny-539/p/3599853.html

asp.net抓取网页html源代码失败 只因UserAgent作怪相关推荐

  1. c 语言获取网页源码,CHttpFile抓取网页源代码 | C/C++程序员之家

    发现MFC真是一个好东西,减少许多C++开发者造轮子的麻烦(说MFC-微软基础类库过时的勿喷).如下,包含头文件afxinet.h(该类封装了一些MFC SOCKET的操作).CHttpFile抓取网 ...

  2. asp.net 初步入门使用正则抓取网页信息

    今天闲着没事看了看使用正则的使用,之前只是用来做验证,第一次用来抓取网页, 抓去了博客园首页几个分页的推荐文章列表.... 代码很简单就不做解释了,肯定做得不严谨,主要是熟悉下几个正则类和用于抓取网页 ...

  3. ASP.NET抓取网页内容

    原文:ASP.NET抓取网页内容 一.ASP.NET 使用HttpWebRequest抓取网页内容 这种方式抓取某些页面会失败 不过,有时候我们会发现,这个程序在抓取某些页面时,是获不到所需的内容的, ...

  4. Linux 抓取网页实例(shell+awk)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 上一篇博 ...

  5. Zotero 抓取知网文献失败解决办法梳理(针对问题:更新Translator无效,更新茉莉花插件无效,卸载Zotero无效,使用学校VPN访问知网)

    Zotero 抓取知网文献失败解决办法梳理(针对问题:更新Translator无效,更新茉莉花插件无效,卸载Zotero无效,使用学校VPN访问知网) 问题背景 解决方案一 解决方案二 解决方案三 说 ...

  6. 利用HttpURLConnection抓取网页取名

    闲来无事,利用Java 的HttpURLConnection,使用多线程来抓取网页,计算名字的分数. 仅供娱乐. 程序如下 import java.io.BufferedReader; import ...

  7. .NET2.0抓取网页全部链接【月儿原创】

    .NET2.0抓取网页全部链接 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.4.18 该方法经过对各大门户网站测试结果是抓取 ...

  8. Java抓取网页数据(原网页+Javascript返回数据)

    转载请注明出处! 原文链接:http://blog.csdn.net/zgyulongfei/article/details/7909006 有时候因为种种原因,我们须要採集某个站点的数据,但因为不同 ...

  9. ASP.NET 抓取网页内容

    (转)ASP.NET 抓取网页内容 ASP.NET 抓取网页内容-文字 ASP.NET 中抓取网页内容是非常方便的,而其中更是解决了 ASP 中困扰我们的编码问题. 需要三个类:WebRequest. ...

  10. 【.NET】使用HtmlAgilityPack抓取网页数据

    原文:[.NET]使用HtmlAgilityPack抓取网页数据 刚刚学习了XPath路径表达式,主要是对XML文档中的节点进行搜索,通过XPath表达式可以对XML文档中的节点位置进行快速定位和访问 ...

最新文章

  1. 2.本征矩阵 基本矩阵以及对极几何之间的约束关系
  2. 如何黑掉一台根本不联网的电脑
  3. js 获取 select的option的 id值
  4. A - Promotions
  5. Mysql windows 安装提示MSVCR120.dll文件丢失
  6. Linux服务器性能评估(转)
  7. 人工智能python基础知识_AI 人工智能基础知识-习题
  8. Python_多进程
  9. 内存一致性模型(Memory Consistency Models)
  10. 死磕jdk源码之如何注释
  11. 计算机二级office学习之Excel操作题考点整理
  12. 华三H3C交换机路由器如何配置dhcp中继(dhcp relay)
  13. ArcGIS Pro 学习路径
  14. Emscripten 单词_学会词根词缀,开启高效、快速地记忆英语单词模式
  15. 湿气重怎么办?湿气有哪些危害?祛湿建议首选云植祛湿颗粒
  16. 2021年美国大学生数学建模竞赛C题参考翻译
  17. AutoformR8 软件安装说明视频教程
  18. 小米盒子访问计算机硬盘,无需电脑教你手机数据传到小米盒子外置硬盘的教程...
  19. 计算机的基础知识有哪些呢?
  20. oracle永久解scott,Oracle 11g中解决被锁定的scott用户的方法

热门文章

  1. perl 切换 dnspod 域名记录
  2. js得到自定义属性和操作table表格
  3. keepalived vrrp_script脚本不执行解决办法
  4. 书评-YDKJSthis与对象原型
  5. FragmentStatePagerAdapter写法
  6. Android studio 如何快速收起代码?
  7. ux.plup.File plupload 集成 ux.plup.FileLis 批量上传预览
  8. [20151014]关于result cache.txt
  9. Linux 下删除大量文件
  10. C#中的线程(四)高级话题