• C# 实现抓取网站页面内容


    抓取新浪网的新闻栏目,如图所示:

    使用 谷歌浏览器的查看源代码: 通过分析得知,我们所要找的内容在以下两个标签之间:

    1 <!-- publish_helper name='要闻-新闻' p_id='1' t_id='850' d_id='1' -->
    2 
    3 
    4 内容。。。。
    5 
    6 
    7 
    8 <!-- publish_helper name='要闻-财经' p_id='30' t_id='98' d_id='1' -->

    如图所示:

    内容。。。。

    使用VS建立一个如图所示的网站:

    我们下载网络数据主要通过   WebClient 类来实现。

    使用下面源代码获取我们选择的内容:

     1         protected void Enter_Click(object sender, EventArgs e)
     2         {
     3             WebClient we = new WebClient();  //主要使用WebClient类
     4             byte[] myDataBuffer;
     5             myDataBuffer = we.DownloadData(txtURL.Text);  //该方法返回的是 字节数组,所以需要定义一个byte[]
     6             string download = Encoding.Default.GetString(myDataBuffer);  //对下载的数据进行编码
     7 
     8            
     9             //通过查询源代码,获取某两个值之间的新闻内容
    10             int startIndex = download.IndexOf("<!-- publish_helper name='要闻-新闻' p_id='1' t_id='850' d_id='1' -->");
    11             int endIndex = download.IndexOf("<!-- publish_helper name='要闻-财经' p_id='30' t_id='98' d_id='1' -->");
    12             
    13             string temp = download.Substring(startIndex, endIndex - startIndex + 1);  //截取新闻内容
    14 
    15             lblMessage.Text = temp;//显示所截取的新闻内容
    16         }

    效果如图:

     

    最后: 除了把下载的数据保存为文本以外,还可以保存为 文件类型 类型。

    1             WebClient wc = new WebClient();
    2             wc.DownloadFile(TextBox1.Text, @"F:	est.txt");
    3             Label1.Text = "文件下载完成";        
    1        WebClient wc = new WebClient();
    2             Stream  s =  wc.OpenRead(TextBox1.Text);
    3            
    4             StreamReader sr = new StreamReader(s);
    5             Label1.Text =  sr.ReadToEnd();
  • 相关阅读:
    邪恶的强制数据转换
    知识普及
    判断是否为一个数字
    parseInt
    webpack学习记录
    数组隐藏属性
    elasticSearch基本使用
    elasticsearch安装和部署
    neo4j索引
    spark yarn 提交作业
  • 原文地址:https://www.cnblogs.com/TangPro/p/3266386.html
Copyright © 2020-2023  润新知