用C#编写自动抓取网页数据

来源:互联网 发布:微信炸金花软件 编辑:程序博客网 时间:2024/05/17 08:45

我们每天业务需从上一级的系统中(B/S)中获取任务,上一级系统升级,没有及时提供数据包下载,而任务量又大,和上一级沟通又是被一拖再拖,没办法只能是录入人员登录上级系统,然后原始的拷贝粘贴,效率,速度太慢,在这种情况下只能自己做个抓取小软件(见下图所示)了。

        经过对比,系统中引用了HtmlAgilityPack 这个组件,简单记录一下使用

        经过获取html源码以后 读取<input  type="hidden" name="appnum" value="20170000001">

        注意利用此组件读取html源码时候,双引号会使用转义字符 &#034; ,为使得内容一致,导入到数据库或显示时必须转为 双引号

 public static String GetHtmlNodeValueByElementName(String html, String nodename)
       {


           HtmlDocument htmlDoc = new HtmlDocument();
           htmlDoc.LoadHtml(@html);
           string selectnodename = "";
            selectnodename = string.Format("//input[@name='{0}']", nodename);
            HtmlNode htmlNode= htmlDoc.DocumentNode.SelectSingleNode(selectnodename);
            if (htmlNode != null)
            {
                return htmlNode.Attributes["value"].Value;
            }
            else {
                return "";
            }
        
            
     
       }