Chia sẻ

Nội dung

Giới thiệu

Trong bài hôm nay, csharpcanban.com sẽ giới thiệu tới các bạn thêm 2 phương pháp để quét trang web bằng thư viện HtmlAgilityPack với C# hoặc WPF.

Chuẩn bị

Bước 1. Tạo một ứng dụng C# mới

Bước 2. Bổ sung thêm thư viện HtmlAgilityPack từ nuget

Bước 3. Sử dụng 1 trong 2 phương pháp sau để quét

Phương pháp 1

using HtmlAgilityPack;
using System;
using System.Linq;
namespace Vainolo.WebScraping
{
    class Method1
    {
        public static void Scrape()
        {
            var page = new HtmlDocument();
            page.Load("https://vainolo.z14.web.core.windows.net/WebScraping.html");
            var techniquesTitle = page.GetElementbyId("Techniques");
            var currNode = techniquesTitle.ParentNode.NextSibling;
            while(currNode.Name != "h2")
            {
                if(currNode.GetClasses().Contains("mw-headline"))
                {
                    var headline = currNode.InnerText;
                    Console.WriteLine(headline);
                }
                if(currNode.HasChildNodes)
                {
                    currNode = currNode.FirstChild;
                }
                else if(currNode == currNode.ParentNode.LastChild)
                {
                    while(currNode.ParentNode.NextSibling == null)
                    {
                        currNode = currNode.ParentNode;
                    }
                    currNode = currNode.ParentNode.NextSibling;
                }
                else
                {
                    currNode = currNode.NextSibling;
                }
            }
        }
    }
}

Phương pháp 2

using HtmlAgilityPack;
using System;
using System.Linq;
namespace Vainolo.WebScraping
{
    class Method2
    {
        public static void Scrape()
        {
            var page = new HtmlDocument();
            page.Load("https://vainolo.z14.web.core.windows.net/WebScraping.html");
            var nodes = page.DocumentNode.Descendants().SkipWhile(e => e.Id != "Techniques").Skip(1).TakeWhile(e => e.Name != "h2");
            foreach (var currNode in nodes)
            {
                 if(currNode.GetClasses().Contains("mw-headline"))
                {
                    var headline = currNode.InnerText;
                    Console.WriteLine(headline);
                }
            }
        }
    }
}

Chúc các bạn thành công!

ĐĂNG KÝ MUA HÀNG

    Email (*)

    Điện thoại (*)

    Tên sản phẩm/Dịch vụ:


    Chia sẻ
    Xem thêm  [WPF] Hướng dẫn sử dụng ảnh động gif trong WPF

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *