zoukankan      html  css  js  c++  java
  • ASP.NET网页抓取数据

    我的数据通过一个TextBox输入,这些代码是写在一个button的点击事件里的。

    网页数据抓取大概分为两步,第一步是获取网页源代码:

    具体注释如下:

             var currentUrl = TextBox1.Text;//获得要抓取的网页的URL地址
     
            var request = WebRequest.Create(currentUrl) as HttpWebRequest;//请求对象
            var response=request.GetResponse()as HttpWebResponse;//定义页面回应对象
           

            var encode = string.Empty;
           
            encode = response.CharacterSet;//获得网页的编码

     
            Stream stream;//数据流
            if (response.ContentEncoding.ToLower() == "gzip")
            {
                stream = new GZipStream(response.GetResponseStream(),    CompressionMode.Decompress);
            }
            else {
                stream = response.GetResponseStream();
            }//解压缩
            var sr = new StreamReader(stream,Encoding.GetEncoding(encode));//定义数据流读取对象
            var html = sr.ReadToEnd();
            sr.Close();
            HtmlDocument document=new HtmlDocument();
            document.LoadHtml(html);//将数据存入document

    得到了网页源代码,接下来就是对其解析,就是第二步:

    解析可以使用正则表达式或是Spilt等字符串操作方法。

    根据源代码写出的Xpath,利用节点得到位于两个节点之间的数据:

    我的对象网页就是我的博客主页http://home.cnblogs.com/u/xuwanghu/

    string sumLine = document.DocumentNode.SelectSingleNode("//body//ul[@id='user_profile']").InnerText;

    string yuanlin = sumLine2.ToString().Split(':')[0].Split('博')[0];

    这样子,就将园龄存入了yuanlin,也就实现了抓取网页数据的功能。

  • 相关阅读:
    ResNet & DenseNet
    82. 删除排序链表中的重复元素 II
    C++ Primer 笔记——多重继承与虚继承
    C++ Primer 笔记——命名空间
    C++ Primer 笔记——异常处理
    C++ Primer 笔记——模板与泛型编程
    C++ Primer 笔记——转发
    C++ Primer 笔记——理解std::move
    C++ Primer 笔记——OOP
    C++ Primer 笔记——重载运算
  • 原文地址:https://www.cnblogs.com/xuwanghu/p/4664280.html
Copyright © 2011-2022 走看看