直接贴代码了:

 

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);
        }
    }
}

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

 

谢谢浏览!

相关文章:

  • 2021-11-30
  • 2021-12-26
  • 2022-12-23
  • 2021-07-03
  • 2021-12-22
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-15
  • 2021-06-15
  • 2021-12-26
  • 2021-04-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案