代码改变世界

AngleSharp 实战(05)之遍历内部子元素(x)元素,尝试着获取元素的 Attr 和 InnerText

  音乐让我说  阅读(303)  评论(0编辑  收藏  举报


直接贴代码了:

 

复制代码
using System;
using System.Linq;
using System.Threading.Tasks;
using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;
using AngleSharpSamples.Extensions;

namespace AngleSharpSamples
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var config = Configuration.Default.WithDefaultLoader();
            var address = "https://www.cnblogs.com";
            var context = BrowsingContext.New(config);
            var document = await context.OpenAsync(address);
            var cellSelector = "div.post_item";
            IHtmlCollection<IElement> cells = document.QuerySelectorAll(cellSelector);
            int i = 0;
            foreach (IElement postElemItem in cells)
            {
                IElement postTitleElemItem = postElemItem.QuerySelector("a.titlelnk");
                //如果元素不存在,则 postTitleElemItem = null
                if (postTitleElemItem == null)
                {
                    continue;
                }
                i++;
                string postTitleInnerText = postTitleElemItem.TryGetTextContent();//自定义的扩展方法
                string href = postTitleElemItem.TryGetAttributeHref();//自定义的扩展方法
                string postPromptTitle = postTitleElemItem.TryGetAttributeTitle();//自定义的扩展方法

                string summary = postElemItem.TryGetTextContentByQuerySelector("p.post_item_summary");//自定义的扩展方法

                Console.WriteLine("{0}. {1} ( {2} )( {3} )\n\n", i, postTitleInnerText, href, summary);
            }
            
            Console.WriteLine("{0}", Environment.NewLine);
        }
    }
}
复制代码

 

谢谢浏览!

点击右上角即可分享
微信分享提示