• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现通过程序自动抓取远程Web网页信息的代码

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#web应用程序实例,c#web应用程序开发,c#web应用程序,c#创建web应用程序,c#web应用程序入门等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
通过程序自动的读取其它网站网页显示的信息,类似于爬虫程序。比方说我们有一个系统,要提取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("<body", 0);
             int iStart = strWebContent.IndexOf("歌曲TOP500", iBodyStart);
             int iTableStart = strWebContent.IndexOf("<table", iStart);
             int iTableEnd = strWebContent.IndexOf("</table>", iTableStart);
             string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8);

            //生成HtmlDocument
   WebBrowser webb = new WebBrowser();
             webb.Navigate("about:blank");
             HtmlDocument htmldoc = webb.Document.OpenNew(true);
             htmldoc.Write(strWeb);
             HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR");
             foreach (HtmlElement tr in htmlTR)
             {
                 string strID = tr.GetElementsByTagName("TD")[0].InnerText;
                 string strName = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "MusicName");
                 string strSinger = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "Singer");
                 strID = strID.Replace(".", "");
                //插入DataTable
                 AddLine(strID, strName, strSinger,"0");

                 string strID1 = tr.GetElementsByTagName("TD")[2].InnerText;
                 string strName1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "MusicName");
                 string strSinger1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "Singer");
                //插入DataTable
                 strID1 = strID1.Replace(".", "");
                 AddLine(strID1, strName1, strSinger1,"0");

&n
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#反射应用实例
  • C#反射之基础应用实例总结
  • c#初学简单程序实例代码介绍
  • C# 禁止应用程序多次启动的实例
  • c# 应用事务的简单实例
  • 用C#实现启动另一程序的方法实例
  • 浅析C# web访问mysql数据库-整理归纳总结
  • 解决C#程序只允许运行一个实例的几种方法详解
  • C#反射在实际应用中的实例代码
  • C#实现通过程序自动抓取远程Web网页信息的代码

相关文章

  • 2017-05-28C#远程获取图片文件流的方法
  • 2017-05-28C#制作简易的屏保
  • 2017-05-28C#调用CMD命令实例
  • 2017-05-28C#中抽象方法与虚拟方法的区别
  • 2017-05-28C#基于纯数学方法递归实现货币数字转换中文功能详解
  • 2017-05-28C#动态加载dll扩展系统功能的方法
  • 2017-05-28详解MongoDB for C#基础入门
  • 2017-05-28C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法
  • 2017-05-28C#自定义缓存封装类实例
  • 2017-05-28Winform中GridView分组排序功能实现方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# L型棋牌覆盖实现代码与效果
    • C#处理Paint事件的方法
    • C#编程获取资源文件中图片的方法
    • C#程序窗体间使用回调事件方式通讯示例
    • C# NetRemoting实现双向通信
    • C#动态加载dll扩展系统功能的方法
    • C#操作windows系统进程的方法
    • Winform学生信息管理系统各子窗体剖析(3)
    • c#中的常用ToString()方法总结
    • C#中使用UDP通信实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有