当前位置:  编程技术>.net/c#/asp.net

C#实现通过程序自动抓取远程Web网页信息的代码

    来源: 互联网  发布时间:2014-10-13

    本文导语:  通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序。比方说我们有一个系统,要提取BaiDu网站上歌曲搜索排名。分析系统在根据得到的数据进行数据分析。为业务提供参考数据。   为了完成以上的需求,我们就...

通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序。比方说我们有一个系统,要提取BaiDu网站上歌曲搜索排名。分析系统在根据得到的数据进行数据分析。为业务提供参考数据。
  为了完成以上的需求,我们就需要模拟浏览器浏览网页,得到页面的数据在进行分析,最后把分析的结构,即整理好的数据写入数据库。那么我们的思路就是:
  1、发送HttpRequest请求。
  2、接收HttpResponse返回的结果。得到特定页面的html源文件。
  3、取出包含数据的那一部分源码。
  4、根据html源码生成HtmlDocument,循环取出数据。
  5、写入数据库。 
程序如下:  

        //根据Url地址得到网页的html源码
         private string GetWebContent(string Url)
         {
             string strResult="";
             try
             {
                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
    //声明一个HttpWebRequest请求
                 request.Timeout = 30000;
                //设置连接超时时间
                 request.Headers.Set("Pragma", "no-cache");
                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                 Stream streamReceive = response.GetResponseStream();
                 Encoding encoding = Encoding.GetEncoding("GB2312");
                 StreamReader streamReader = new StreamReader(streamReceive, encoding);
                 strResult = streamReader.ReadToEnd();
             }
             catch
             {
                 MessageBox.Show("出错");
             }
             return strResult;
         }
为了使用HttpWebRequest和HttpWebResponse,需填名字空间引用
  using System.Net;

以下是程序具体实现过程:
private void button1_Click(object sender, EventArgs e)
         {
            //要抓取的URL地址
             string Url = "http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2";

            //得到指定Url的源码
   string strWebContent = GetWebContent(Url);

             richTextBox1.Text = strWebContent;
    //取出和数据有关的那段源码
             int iBodyStart = strWebContent.IndexOf("

    
 
 

您可能感兴趣的文章:

  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  • c#实现TextBox只允许输入数字
  • C# Winform 整个窗口拖动的实现代码
  • c# ListView实现双击Item事件的变通方法
  • C#实现随鼠标移动窗体实例
  • C#中的FileUpload 选择后的预览效果具体实现
  • C# 窗体隐藏及任务管理器中禁止关闭的实现代码
  • C#的锯齿数组以及C++实现代码
  • C#格式化文件大小的实现代码
  • C#怎样才能实现窗体最小化到托盘呢?
  • C# char类型字符转换大小写的实现代码
  • 基于python实现的网络爬虫功能:自动抓取网页介绍
  • Winform实现抓取web页面内容的方法
  • PHP curl实现抓取302跳转后页面的示例
  • C#利用Windows自带gdi32.dll实现抓取屏幕功能实例
  • 基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件 nutch-htmlunit
  • java 抓取网页内容实现代码
  • java抓取12306信息实现火车余票查询示例
  • Python代理抓取并验证使用多线程实现
  • 自定义Adapter并通过布局泵LayoutInflater抓取layout模板编辑每一个item实现思路
  • 用C实现PHP扩展 Fetch_Url 类数据抓取的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • 现在java开发中流行通过什么方式实现对数据库操作?就好像Visual Stadio通过ADO访问数据库。
  • 通过javascript库JQuery实现页面跳转功能代码
  • php通过数组实现多条件查询实现方法(字符串分割)
  • linux下通过crond实现自动执行程序
  • 如何设置JTextArea里字体??通过什么方法可以实现?
  • Session id实现通过Cookie来传输方法及代码参考
  • [Fedora] 使用Xmanger来实现在windows下通过远程桌面来访问linux主机的方法
  • Python3通过request.urlopen实现Web网页图片下载
  • 请教,怎样通过jsp和servlet实现rmi技术
  • php通过pack和unpack函数实现对二进制数据封装及解析
  • 请教为什么在C++编译通过并实现的程序,在linux下就会出错
  • 如何通过http代理实现socks代理?
  • 在LINUX下,进程间访问临界资源只能通过效率很低的锁文件方式来实现吗?
  • codeblocks8.02 for linux,程序可以编译通过,但是通过右键“查找fopen函数的声明”或“实现”,都是提示“没有找到:fopen”,为什么
  • 请问各位高手,怎么样在windows上通过批处理脚步启动solaris上的编译器,实现自动编译?(solaris通过telnet登陆)?
  • 通过viewport实现jsp页面支持手机缩放
  • jar是通过批处理实现双击后执行的吗?
  • 通过Oracle发送Email的实现方法
  • 如何实现通过网站发短信
  • 用户通过mozilla访问页面文件,提交的参数要记录到系统的配置文件中去,如何来实现这个接口?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • socket实现多文件并发传输,求助多线程实现问题?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • interface 到底有什么用???实现接口,怎么实现??
  • php实现socket实现客户端和服务端数据通信源代码
  • 怎么用Jsp实现在页面实现树型结构?
  • flash AS3反射实现(describeType和getDefinitionByName)
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • boost unordered_map和std::list相结合的实现LRU算法
  • 网站重定向用C语言实现iptables,ACL实现


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3