zoukankan      html  css  js  c++  java
  • C#获取HTML文件指定DIV内容

    最近自己找了一个开源的博客网站,放到阿里云上,方便自己发布博客。

    我一般把文章发布到博客园和QQ空间,家了这个网站后又要多发布一次,为了省事就做了一个从博客园读取文章的功能;

    输入链接URL地址点击提交;

     

    GetHub安装HtmlAgilityPack

    后台C#代码

     

    public ActionResult LinkBlog(string urlStr)
            {
                Response response = new Response() { Code =1 };
                if (string.IsNullOrWhiteSpace(urlStr))
                {
                    response.Code = 0;
                    response.Message = "链接URL必填";
                    return Json(response);
                }
    
                WebClient c = new WebClient();
                c.Encoding = Encoding.GetEncoding("UTF-8");
                string html = c.DownloadString(urlStr);
    
                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(html);
                HtmlNode nodeinfo = doc.GetElementbyId("post_detail");
    
                //post_detail
                //
                HtmlNode nodetitle = doc.GetElementbyId("cb_post_title_url");
    
                //cnblogs_post_body
    
                HtmlNode nodecontent = doc.GetElementbyId("cnblogs_post_body");
    
                string htmlstr = nodeinfo.OuterHtml;
    
                Blog blog = new Blog();
                blog.Publish = true;
                blog.Title =string.Format("链接文章:{0}", nodetitle.InnerText);
                blog.Volume = 0;
                blog.Content = htmlstr;
                blog.CreateTime = DateTime.Now;
                string htmlsumm = nodecontent.InnerText.Replace(" ", "");
                int sublen = htmlsumm.Length;
                if (sublen > 80)
                {
                    sublen = 80;
                }
                blog.Summary = htmlsumm.Substring(0, sublen);
    
                blog.Category=  categoryManager.FindRoot()[0];
                response = blogManager.AddBlog(blog);
    
                return Json(response);
            }

    应用的技术

    WebClient c = new WebClient();

                c.Encoding = Encoding.GetEncoding("UTF-8");

                string html = c.DownloadString(urlStr);

    通过WebClient读取网页,注意这里的编码问题,有的网页用的是UTF-8有的是GB2312

    自己尝试一下就知道了,编码设置错误会出现汉子乱码。

    HtmlDocument doc = new HtmlDocument();

                doc.LoadHtml(html);

                HtmlNode nodeinfo = doc.GetElementbyId("post_detail");

    读取HTML字符串中指定id的标签的内容;

    参考博客:http://www.cnblogs.com/ITmuse/archive/2010/05/29/1747199.html

     

    最终我不用再重复添加博客了,不过还多亏博客园没有做图片防盗链,否则图片还要单独处理。

  • 相关阅读:
    最快的进程间通信方式你get了么
    【Java】简易Socket连接实现
    【Java】基于RXTX的Java串口通信
    【Android】WebDav For Android
    【Java】Swing实现一个简单的计算器
    (未完成)【Android】MVP模式初见(一)
    【编译原理】TEST递归下降演示
    【Android】LitePal的基础
    【Flutter】Demo1一个名字生成器
    【Flutter】环境搭建以及HelloWorld创建
  • 原文地址:https://www.cnblogs.com/stjwy/p/6030475.html
Copyright © 2011-2022 走看看