C#使用xpath简单爬取网站的内容

复制代码
       public static void Get()
        {
            // string xpathtrI = "//*[@id='classify-list']/dl/dd/a/cite/span/i";
            #region 获取首页的分类

            ////主页的html地址
            //string urlHome = "http://www.qidian.com/";
            //HtmlWeb web = new HtmlWeb();
            //HtmlAgilityPack.HtmlDocument htmlDoc = web.Load(urlHome);
            ////创建html的节点
            //HtmlNode rootNode1 = htmlDoc.DocumentNode;
            //string xpathtrA = "//*[@id='classify-list']/dl/dd";
            //HtmlNodeCollection classList = rootNode1.SelectNodes(xpathtrA);
            //List<string> listINode = new List<string>();
            //foreach (HtmlNode item in classList)
            //{
            //    //获取分类
            //    string inode = item.SelectSingleNode("//a/cite/span/i").InnerText;
            //    listINode.Add(inode);
            //}

            #endregion

            #region 分类及明细

            //string urlDetail = "http://xuanhuan.qidian.com/";
            //List<string> urlList = new List<string>();
            //urlList.Add("http://xuanhuan.qidian.com/");
            //urlList.Add("http://qihuan.qidian.com/");
            //urlList.Add("http://wuxia.qidian.com/");
            //urlList.Add("http://xianxia.qidian.com/");
            //urlList.Add("http://dushi.qidian.com/");
            //urlList.Add("http://zhichang.qidian.com/");
            //urlList.Add("http://junshi.qidian.com/");
            //urlList.Add("http://lishi.qidian.com/");
            //urlList.Add("http://youxi.qidian.com/");
            //urlList.Add("http://tiyu.qidian.com/");
            //urlList.Add("http://kehuan.qidian.com/");
            //urlList.Add("http://lingyi.qidian.com/");//foreach (string url in urlList)
            //{
            //    HtmlAgilityPack.HtmlDocument htmlDetail = web.Load(url);
            //    HtmlNode rootNode2 = htmlDetail.DocumentNode;
            //    string a = "//*[@class='book-info']";
            //    HtmlNodeCollection classList2 = rootNode2.SelectNodes(a);
            //    List<string> listINode2 = new List<string>();
            //    foreach (HtmlNode item in classList2)
            //    {
            //        //获取分类
            //        string inode = item.InnerHtml;
            //        listINode2.Add(inode);
            //    }
            //}

            #endregion

            #region 文章内容

            HtmlWeb web = new HtmlWeb();
            string u = "http://read.qidian.com/chapter/zOGI9RYmNdFhO--gcH8iFg2/h3iHSEH1cSpMs5iq0oQwLQ2";
            HtmlAgilityPack.HtmlDocument htmlDocment = web.Load(u);
            //创建html的节点
            HtmlNode htmlNode = htmlDocment.DocumentNode;
            string x = "//*[@class='read-content j_readContent']";
            HtmlNode htmlNodeP = htmlNode.SelectSingleNode(x);
            string htmlD = htmlNodeP.InnerText;

            #endregion

        }
复制代码

                 只是拿一个例子而已。

posted @   雪?  阅读(2071)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示