IRONSOFTWAREHOME

Scrape a Shopping Website in C#

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

C# ve WebScraper frameworkünü kullanarak alışveriş sitelerinden ürün kategorileri ve öğeleri kazımanın yollarını öğrenin, HTML öğelerinden yapılandırılmış verileri çıkartarak özel modellere dönüştürün. Bu kapsamlı rehber, sizi IronWebScraper kütüphanesi kullanarak sağlam bir e-ticaret kazıyıcısı inşa etme sürecinden geçirir.

@@--AH2BG--@@Hızlı Başlangıç: C#'ta Alışveriş Web Sitesini Kazıyın@@--AH2EG--@

  1. 1Install IronWebScraper with NuGet Package Manager

    PM > Install-Package IronWebScraper

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    using IronWebScraper;
    
    public class QuickShoppingScraper : WebScraper
    {
        public override void Init()
        {
            // Apply your license key
            License.LicenseKey = "YOUR-LICENSE-KEY";
            
            // Set the starting URL
            this.Request("https://shopping-site.com", Parse);
        }
        
        public override void Parse(Response response)
        {
            // Extract product data
            foreach (var product in response.Css(".product-item"))
            {
                var item = new
                {
                    Name = product.Css(".product-name").First().InnerText,
                    Price = product.Css(".price").First().InnerText,
                    Image = product.Css("img").First().Attributes["src"]
                };
                
                Scrape(item, "products.jsonl");
            }
        }
    }
    
    // Run the scraper
    var scraper = new QuickShoppingScraper();
    scraper.Start();
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronWebScraper kullanmaya başlayın
    arrow pointer
  1. "ShoppingSiteSample" adlı yeni bir Konsol Uygulaması projesi oluşturun
  2. WebScraper'dan miras alan "ShoppingScraper" adında bir sınıf ekleyin.
  3. Category ve Product verileri için modeller oluşturun.
  4. Başlangıç URL'sini ayarlamak ve kazıma için Parse() metodunu belirlemek üzere Init()'yi geçersiz kılın.
  5. Kategorileri ve ürünleri JSONL dosyalarına çıkarmak için kazıyıcıyı çalıştırın

Alışveriş Sitesinin HTML Yapısını Nasıl Analiz Ederim?

İçerik yapısını analiz etmek için bir alışveriş sitesi seçin. HTML yapısını anlamak başarılı bir web kazıma için çok önemlidir. Herhangi bir kod yazmadan önce, tarayıcı geliştirici araçlarını kullanarak hedef web sitesinin yapısını analiz etmek için zaman harcayın.

Ramazan tanıtım banner'ı ve navigasyon menüsü ile Jumia e-ticaret ana sayfası

Resimde gösterildiği gibi, sol kenar çubuğu sitenin ürün kategorileri için bağlantılar içeriyor. İlk adım, sitenin HTML'sini araştırmak ve kazıma yaklaşımını planlamaktır. Bu analiz aşaması, etkili bir kazıma stratejisi oluşturmak için çok önemlidir.

Ürün kategorilerini, alt kategorileri ve marka bölümlerini gösteren e-ticaret web sitesi navigasyon menüsü

HTML Yapısını Anlamak Neden Önemlidir?

Moda sitesi kategorilerinin alt kategorileri vardır (Erkek, Kadın, Çocuk). Bu hiyerarşik yapının anlaşılması, uygun veri modellerinin ve kazıma mantığının tasarlanmasına yardımcı olur. gelişmiş web kazıma özellikleri ile çalışırken, doğru HTML analizi daha da kritik hale gelir.

<li class="menu-item" data-id="">
    <a href="https://domain.com/fashion-by-/" class="main-category">
        <i class="cat-icon osh-font-fashion"></i>
        <span class="nav-subTxt">FASHION </span>
        <i class="osh-font-light-arrow-left"></i><i class="osh-font-light-arrow-right"></i>
    </a>
    <div class="navLayerWrapper" style="width: 633px; display: none;">
        <div class="submenu">
            <div class="column">
                <div class="categories">
                    <a class="category" href="https://domain.com/fashion-by-/?sort=newest&amp;dir=desc&amp;viewType=gridView3">New Arrivals !</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/men-fashion/">Men</a>
                    <a class="subcategory" href="https://domain.com/mens-shoes/">Shoes</a>
                    <a class="subcategory" href="https://domain.com/mens-clothing/">Clothing</a>
                    <a class="subcategory" href="https://domain.com/mens-accessories/">Accessories</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/women-fashion/">Women</a>
                    <a class="subcategory" href="https://domain.com/womens-shoes/">Shoes</a>
                    <a class="subcategory" href="https://domain.com/womens-clothing/">Clothing</a>
                    <a class="subcategory" href="https://domain.com/womens-accessories/">Accessories</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/girls-boys-fashion/">Kids</a>
                    <a class="subcategory" href="https://domain.com/boys-fashion/">Boys</a>
                    <a class="subcategory" href="https://domain.com/girls/">Girls</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/maternity-clothes/">Maternity Clothes</a>
                </div>
            </div>
            <div class="column">
                <div class="categories">
                    <span class="category defaultCursor">Men Best Sellers</span>
                    <a class="subcategory" href="https://domain.com/mens-casual-shoes/">Casual Shoes</a>
                    <a class="subcategory" href="https://domain.com/mens-sneakers/">Sneakers</a>
                    <a class="subcategory" href="https://domain.com/mens-t-shirts/">T-shirts</a>
                    <a class="subcategory" href="https://domain.com/mens-polos/">Polos</a>
                </div>
                <div class="categories">
                    <span class="category defaultCursor">Women Best Sellers</span>
                    <a class="subcategory" href="https://domain.com/womens-sandals/">Sandals</a>
                    <a class="subcategory" href="https://domain.com/womens-sneakers/">Sneakers</a>
                    <a class="subcategory" href="https://domain.com/women-dresses/">Dresses</a>
                    <a class="subcategory" href="https://domain.com/women-tops/">Tops</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/womens-curvy-clothing/">Women's Curvy Clothing</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/fashion-bundles/v/">Fashion Bundles</a>
                </div>
                <div class="categories">
                    <a class="category" href="https://domain.com/hijab-fashion/">Hijab Fashion</a>
                </div>
            </div>
            <div class="column">
                <div class="categories">
                    <a class="category" href="https://domain.com/brands/fashion-by-/">SEE ALL BRANDS</a>
                    <a class="subcategory" href="https://domain.com/adidas/">Adidas</a>
                    <a class="subcategory" href="https://domain.com/converse/">Converse</a>
                    <a class="subcategory" href="https://domain.com/ravin/">Ravin</a>
                    <a class="subcategory" href="https://domain.com/dejavu/">Dejavu</a>
                    <a class="subcategory" href="https://domain.com/agu/">Agu</a>
                    <a class="subcategory" href="https://domain.com/activ/">Activ</a>
                    <a class="subcategory" href="https://domain.com/oxford--bellini--tie-house--milano/">Tie House</a>
                    <a class="subcategory" href="https://domain.com/shoe-room/">Shoe Room</a>
                    <a class="subcategory" href="https://domain.com/town-team/">Town Team</a>
                </div>
            </div>
        </div>
    </div>
</li>
HTML

Web Kazıma Projesini Nasıl Kurarım?

C# web kazıma için en iyi uygulamaları takip eden bir proje oluşturun.

"ShoppingSiteSample" adında yeni bir Konsol Uygulaması oluşturun veya örnek için yeni bir klasör ekleyin 2. "ShoppingScraper" adında yeni bir sınıf ekleyin. Site kategorilerini ve alt kategorilerini kazıyarak başlayın 4. IronWebScraper kurulumunu NuGet Paket Yöneticisi veya Paket Yöneticisi Konsolu aracılığıyla gerçekleştirin:

PM > Install-Package IronWebScraper

Kategoriler için Hangi Veri Modelini Kullanmalıyım?

Keşfedilen hiyerarşik yapıyı düzgün bir şekilde temsil eden bir Kategoriler Modeli oluşturun:

public class Category
{
    /// <summary>
    /// Gets or sets the name.
    /// </summary>
    /// <value>
    /// The name.
    /// </value>
    public string Name { get; set; }
    
    /// <summary>
    /// Gets or sets the URL.
    /// </summary>
    /// <value>
    /// The URL.
    /// </value>
    public string URL { get; set; }
    
    /// <summary>
    /// Gets or sets the subcategories.
    /// </summary>
    /// <value>
    /// The subcategories.
    /// </value>
    public List<Category> SubCategories { get; set; }
    
    // Additional properties for enhanced data collection
    public int ProductCount { get; set; }
    public DateTime LastScraped { get; set; }
    public string CategoryType { get; set; }
}

Temel Kazıyıcı Mantığını Nasıl Oluşturabilirim?

Kazıyıcı mantığını oluşturun ve kazıyıcıyı çalıştırmadan önce lisans anahtarınızı uygulamayı unutmayın:

public class ShoppingScraper : WebScraper
{
    /// <summary>
    /// Initialize the web scraper, setting the start URLs and allowed/banned domains or URL patterns.
    /// </summary>
    public override void Init()
    {
        // Apply your license key - get one from https://ironsoftware.com/csharp/webscraper/licensing/
        License.LicenseKey = "LicenseKey";
        this.LoggingLevel = WebScraper.LogLevel.All;
        this.WorkingDirectory = AppSetting.GetAppRoot() + @"\ShoppingSiteSample\Output\";
        
        // Configure request settings for better performance
        this.Request("www.webSite.com", Parse);
    }

    /// <summary>
    /// Parses the HTML document of the response to scrap the necessary data.
    /// </summary>
    /// <param name="response">The HTTP Response object to parse.</param>
    public override void Parse(Response response)
    {
        var categoryList = new List<Category>();
        
        // Iterate through each link in the menu and extract the category data.
        foreach (var Links in response.Css("#menuFixed > ul > li > a"))
        {
            var cat = new Category
            {
                URL = Links.Attributes["href"],
                Name = Links.InnerText,
                LastScraped = DateTime.Now
            };
            categoryList.Add(cat);
        }
        
        // Save the scraped data into a JSONL file.
        Scrape(categoryList, "Shopping.jsonl");
    }
}

Menüde Hangi Öğeleri Hedefliyorum?

Menüdeki bağlantıların kazınması hassas CSS seçicileri gerektirir. API Referansi mevcut seçici yöntemleri hakkında ayrıntılı bilgi sağlar:

İç içe geçmiş alt kategoriler ve URL'lerle e-ticaret kategori yapısını gösteren Not Defteri'nde JSON dosyası

Hem Ana Kategorileri Hem de Alt Kategorileri Nasıl Kazırım?

Ana kategorileri ve tüm alt bağlantıları kazımak için kodu güncelleyin. Bu yaklaşım, navigasyon yapısının tam olarak yakalanmasını sağlar:

public override void Parse(Response response)
{
    // List of Category Links (Root)
    var categoryList = new List<Category>();

    // Traverse each 'li' under the fixed menu
    foreach (var li in response.Css("#menuFixed > ul > li"))
    {
        // List of Main Links
        foreach (var Links in li.Css("a"))
        {
            var cat = new Category
            {
                URL = Links.Attributes["href"],
                Name = Links.InnerText,
                SubCategories = new List<Category>(),
                LastScraped = DateTime.Now
            };

            // List of Subcategories Links
            foreach (var subCategory in li.Css("a[class=subcategory]"))
            {
                var subcat = new Category
                {
                    URL = subCategory.Attributes["href"],
                    Name = subCategory.InnerText,
                    CategoryType = "Subcategory"
                };

                // Check if subcategory link already exists
                if (cat.SubCategories.Find(c => c.Name == subcat.Name && c.URL == subcat.URL) == null)
                {
                    // Add sublinks
                    cat.SubCategories.Add(subcat);
                }
            }
            
            // Update product count based on subcategories
            cat.ProductCount = cat.SubCategories.Count;
            
            // Add Main Category to the list
            categoryList.Add(cat);
        }
    }

    // Save the scraped data into a JSONL file.
    Scrape(categoryList, "Shopping.jsonl");
}

Kategori Sayfalarından Ürün Bilgilerini Nasıl Çıkarırım?

Tüm site kategorilerine bağlantılar mevcut olduğundan, her kategorideki ürünleri kazımaya başlayın. Ürün sayfalarıyla uğraşırken, optimum performans için thread safety önemli hale gelir. Herhangi bir kategoriye gidin ve içeriği inceleyin:

Fiyatlar, derecelendirmeler ve filtreleme kontrolleri ile ayakkabı ve aksesuarları gösteren e-ticaret ürün listeleme sayfası

Ürün HTML Yapısı Nasıl Görünüyor?

Ürün organizasyonunu anlamak için HTML yapısını inceleyin:

<section class="products">
    <div class="sku -gallery -validate-size " data-sku="AG249FA0T2PSGNAFAMZ" ft-product-sizes="41,42,43,44,45" ft-product-color="Multicolour">
        <a class="link" href="http://www.WebSite.com/agu-bundle-of-2-sneakers-black-navy-blue-653884.html">
            <div class="image-wrapper default-state">
                <img class="lazy image -loaded" alt="Bundle Of 2 Sneakers - Black & Navy Blue" data-image-vertical="1" width="210" height="262" src="https://static.WebSite.com/p/agu-6208-488356-1-catalog_grid_3.jpg" data-sku="AG249FA0T2PSGNAFAMZ" data-src="https://static.WebSite.com/p/agu-6208-488356-1-catalog_grid_3.jpg" data-placeholder="placeholder_m_1.jpg">
                <noscript><img src="https://static.WebSite.com/p/agu-6208-488356-1-catalog_grid_3.jpg" width="210" height="262" class="image" /></noscript>
            </div>
            <h2 class="title"></h2>
                <span class="brand ">Agu&nbsp;</span>
                <span class="name" dir="ltr">Bundle Of 2 Sneakers - Black & Navy Blue</span>
            </h2>
            <div class="price-container clearfix">
                <span class="price-box">
                    <span class="price">
                        <span data-currency-iso="EGP">EGP</span>
                        <span dir="ltr" data-price="299">299</span>
                    </span>
                    <span class="price -old  -no-special"></span>
                </span>
            </div>
            <div class="rating-stars">
                <div class="stars-container">
                    <div class="stars" style="width: 62%"></div>
                </div>
                <div class="total-ratings">(30)</div>
            </div>
            <span class="shop-first-logo-container">
                <img src="http://www.WebSite.com/images/local/logos/shop_first/ShoppingSite/logo_normal.png" data-src="http://www.WebSite.com/images/local/logos/shop_first/ShoppingSite/logo_normal.png" class="lazy shop-first-logo-img -mbxs -loaded">
            </span>
            <span class="osh-icon -ShoppingSite-local shop_local--logo -block -mbs -mts"></span>
            <div class="list -sizes" data-selected-sku="">
                <span class="js-link sku-size" data-href="http://www.WebSite.com/agu-bundle-of-2-sneakers-black-navy-blue-653884.html?size=41">41</span>
                <span class="js-link sku-size" data-href="http://www.WebSite.com/agu-bundle-of-2-sneakers-black-navy-blue-653884.html?size=42">42</span>
                <span class="js-link sku-size" data-href="http://www.WebSite.com/agu-bundle-of-2-sneakers-black-navy-blue-653884.html?size=43">43</span>
                <span class="js-link sku-size" data-href="http://www.WebSite.com/agu-bundle-of-2-sneakers-black-navy-blue-653884.html?size=44">44</span>
                <span class="js-link sku-size" data-href="http://www.WebSite.com/agu-bundle-of-2-sneakers-black-navy-blue-653884.html?size=45">45</span>
            </div>
        </a>
    </div>
    <div class="sku -gallery -validate-size " data-sku="LE047FA01SRK4NAFAMZ" ft-product-sizes="110,115,120,125,130,135" ft-product-color="Black">
        <a class="link" href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html">
            <div class="image-wrapper default-state">
                <img class="lazy image -loaded" alt="Genuine Leather Belt - Black" data-image-vertical="1" width="210" height="262" src="https://static.WebSite.com/p/leather-shop-1831-030217-1-catalog_grid_3.jpg" data-sku="LE047FA01SRK4NAFAMZ" data-src="https://static.WebSite.com/p/leather-shop-1831-030217-1-catalog_grid_3.jpg" data-placeholder="placeholder_m_1.jpg">
                <noscript><img src="https://static.WebSite.com/p/leather-shop-1831-030217-1-catalog_grid_3.jpg" width="210" height="262" class="image" /></noscript>
            </div>
            <h2 class="title"><span class="brand ">Leather Shop&nbsp;</span> <span class="name" dir="ltr">Genuine Leather Belt - Black</span></h2>
            <div class="price-container clearfix">
                <span class="sale-flag-percent">-29%</span>
                <span class="price-box">
                    <span class="price"><span data-currency-iso="EGP">EGP</span> <span dir="ltr" data-price="96">96</span> </span>
                    <span class="price -old"><span data-currency-iso="EGP">EGP</span> <span dir="ltr" data-price="135">135</span> </span>
                </span>
            </div>
            <div class="rating-stars">
                <div class="stars-container">
                    <div class="stars" style="width: 100%"></div>
                </div>
                <div class="total-ratings">(1)</div>
            </div>
            <span class="osh-icon -ShoppingSite-local shop_local--logo -block -mbs -mts"></span>
            <div class="list -sizes" data-selected-sku="">
                <span class="js-link sku-size" data-href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html?size=110">110</span>
                <span class="js-link sku-size"data-href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html?size=115">115</span>
                <span class="js-link sku-size"data-href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html?size=120">120</span>
                <span class="js-link sku-size"data-href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html?size=125">125</span>
                <span class="js-link sku-size"data-href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html?size=130">130</span>
                <span class="js-link sku-size"data-href="http://www.WebSite.com/leather-shop-genuine-leather-belt-black-712030.html?size=135">135</span>
            </div>
        </a>
    </div>
</section>
HTML

Hangi Ürün Modelini Oluşturmalıyım?

Bu içerik için bir ürün modeli oluşturun. alışveriş sitesi kazıma ile çalışırken, ilgili tüm ürün ayrıntılarını yakalayın:

public class Product
{
    /// <summary>
    /// Gets or sets the name.
    /// </summary>
    /// <value>
    /// The name.
    /// </value>
    public string Name { get; set; }
    
    /// <summary>
    /// Gets or sets the price.
    /// </summary>
    /// <value>
    /// The price.
    /// </value>
    public string Price { get; set; }
    
    /// <summary>
    /// Gets or sets the image.
    /// </summary>
    /// <value>
    /// The image.
    /// </value>
    public string Image { get; set; }
    
    // Additional properties for comprehensive data collection
    public string Brand { get; set; }
    public string OldPrice { get; set; }
    public string Discount { get; set; }
    public float Rating { get; set; }
    public int ReviewCount { get; set; }
    public List<string> AvailableSizes { get; set; }
    public string ProductUrl { get; set; }
    public string SKU { get; set; }
    public DateTime ScrapedDate { get; set; }
}

Ürün Kazıma İşlevselliğini Nasıl Ekleyebilirim?

Kategori sayfalarını kazımak için hata işleme ve veri doğrulama özelliklerine sahip yeni bir kazıma yöntemi ekleyin:

public void ParseCategory(Response response)
{
    // List of Products
    var productList = new List<Product>();

    // Iterate through product links in the product section
    foreach (var Links in response.Css("section.products > div > a"))
    {
        try
        {
            var product = new Product
            {
                Name = Links.Css("h2.title > span.name").First().InnerText,
                Brand = Links.Css("h2.title > span.brand").FirstOrDefault()?.InnerText ?? "Unknown",
                Price = Links.Css("div.price-container > span.price-box > span.price > span[data-price]").First().InnerText,
                Image = Links.Css("div.image-wrapper.default-state > img").First().Attributes["src"],
                ProductUrl = Links.Attributes["href"],
                SKU = Links.ParentNode.Attributes["data-sku"],
                ScrapedDate = DateTime.Now
            };

            // Extract old price if available
            var oldPriceElement = Links.Css("span.price.-old > span[data-price]").FirstOrDefault();
            if (oldPriceElement != null)
            {
                product.OldPrice = oldPriceElement.InnerText;
            }

            // Extract discount percentage
            var discountElement = Links.Css("span.sale-flag-percent").FirstOrDefault();
            if (discountElement != null)
            {
                product.Discount = discountElement.InnerText;
            }

            // Extract rating information
            var ratingWidth = Links.Css("div.stars").FirstOrDefault()?.Attributes["style"];
            if (!string.IsNullOrEmpty(ratingWidth))
            {
                var width = System.Text.RegularExpressions.Regex.Match(ratingWidth, @"(\d+)%").Groups[1].Value;
                if (int.TryParse(width, out int ratingPercent))
                {
                    product.Rating = ratingPercent / 20.0f; // Convert percentage to 5-star scale
                }
            }

            // Extract review count
            var reviewText = Links.Css("div.total-ratings").FirstOrDefault()?.InnerText;
            if (!string.IsNullOrEmpty(reviewText))
            {
                var reviewCount = System.Text.RegularExpressions.Regex.Match(reviewText, @"\d+").Value;
                if (int.TryParse(reviewCount, out int count))
                {
                    product.ReviewCount = count;
                }
            }

            // Extract available sizes
            product.AvailableSizes = Links.Css("div.list.-sizes > span.sku-size")
                .Select(s => s.InnerText)
                .ToList();

            productList.Add(product);
        }
        catch (Exception ex)
        {
            // Log error and continue with next product
            Console.WriteLine($"Error parsing product: {ex.Message}");
        }
    }

    // Save the scraped product data into a JSONL file.
    Scrape(productList, "Products.jsonl");
    
    // Handle pagination if needed
    var nextPageLink = response.Css("a.pagination-next").FirstOrDefault();
    if (nextPageLink != null)
    {
        var nextPageUrl = nextPageLink.Attributes["href"];
        this.Request(nextPageUrl, ParseCategory);
    }
}

Alışveriş sitelerinin kazınmasına yönelik bu kapsamlı yaklaşım, hataları incelikle ele alırken ilgili tüm ürün bilgilerinin yakalanmasını sağlar. Daha gelişmiş senaryolar için, IronWebScraper içindeki ileri düzey web kazıma özelliklerini keşfedin.

Sıkça Sorulan Sorular

Alışveriş web sitelerinden ürün verilerini C# ile nasıl çıkarabilirim?

IronWebScraper, alışveriş web sitelerinden ürün verilerini çıkarmayı CSS seçicileri kullanarak kolaylaştırır. Bir WebScraper sınıfı oluşturabilir, Parse yöntemini geçersiz kılabilir ve response.Css()'i kullanarak ürün adları, fiyatları ve görüntüleri gibi belirli HTML öğelerini hedefleyebilirsiniz. Çıkartılan veriler JSON ve JSONL dosyaları dahil çeşitli formatlarda kaydedilebilir.

Bir alışveriş web sitesi kazıyıcısı oluşturmak için temel adımlar nelerdir?

IronWebScraper ile bir alışveriş web sitesi kazıyıcısı oluşturmak için: 1) Konsol Uygulama projesi oluşturun, 2) WebScraper'dan türeyen bir sınıf ekleyin, 3) Kategoriler ve ürünler için veri modelleri oluşturun, 4) Başlangıç URL'nizi ayarlamak için Init() yöntemi geçersiz kılın, 5) CSS seçicileri kullanarak verileri çıkarmak için Parse() yöntemi geçersiz kılın ve 6) Verileri tercih ettiğiniz formata kaydetmek için kazıyıcıyı çalıştırın.

E-ticaret sitelerini kazırken hiyerarşik kategori yapılarını nasıl ele alabilirim?

IronWebScraper, E-ticaret sitelerini kazırken hiyerarşik yapıların üstesinden gelmek için uygun veri modelleri oluşturarak üst-alt ilişkileri (Moda > Erkek > Ayakkabı gibi) yansıtabilir. CSS seçicileri kullanarak iç içe geçmiş HTML öğeleri arasında gezinebilir ve IronWebScraper'ın gelişmiş özellikleriyle çalışırken özellikle yararlı olan kategori ağaç yapınızı programatik olarak oluşturabilirsiniz.

Bir alışveriş sitesinin HTML yapısını kazımadan önce analiz etmenin en iyi yolu nedir?

Bir alışveriş sitesini kazımadan önce IronWebScraper kullanarak, tarayıcı geliştirici araçlarını kullanarak HTML yapısını inceleyin. CSS sınıflarında ve öğe hiyerarşilerinde tutarlı kalıplar arayın. Bu analiz, IronWebScraper Parse() yönteminizde doğru CSS seçicileri kullanarak ürün bilgilerini, kategorileri ve diğer veri öğelerini doğru bir şekilde hedeflemenize yardımcı olur.

Aynı sayfadan hem ürün listeleri hem de kategori gezinmesi çıkarabilir miyim?

Evet, IronWebScraper bir sayfadan birden fazla veri türünü çıkarmayı mümkün kılar. Parse() yönteminizde, kategori bağlantılarını ('.category-item' gibi) ve ürün listelerini ('.product-item' gibi) hedeflemek için farklı CSS seçiciler kullanabilir, ardından bunları ayrı çıktı dosyalarına veya veri yapılarına kaydedebilirsiniz.

Kazınmış ürün verilerini bir dosyaya nasıl kaydederim?

IronWebScraper, verileri otomatik olarak kaydeden yerleşik bir Scrape() yöntemi sağlar. Sadece veri nesnenizi ve dosya adınızı Scrape(item, "products.jsonl")'a geçirin. Kütüphane, kazınmış e-ticaret verilerinizi daha fazla işlemek için JSON, JSONL ve CSV gibi çeşitli çıktı formatlarını destekler.

How does `IronWebScraper` improve the efficiency of a web scraping project?

`IronWebScraper` enhances web scraping efficiency through features like concurrent requests, CSS selectors for targeted scraping, and harvesting data into structured formats, making the scraping process faster and more organized.

How do I ensure thread safety when scraping product pages?

To ensure thread safety when scraping product pages, you should manage concurrent requests and resource sharing carefully, using the advanced features of `IronWebScraper` designed to handle multi-threaded operations efficiently.

What are common elements targeted when scraping e-commerce categories?

Common elements targeted when scraping e-commerce categories include category names, URLs, subcategory links, and sometimes metadata like product counts or last updated timestamps.

How do I scrape subcategories along with main categories?

You can scrape subcategories along with main categories by iterating through each main category's HTML structure, identifying subcategory links, and extracting their respective names and URLs using `IronWebScraper`.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 143,929Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronWebScraper
nuget.org/packages/IronWebScraper/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Gözat'ı seçin ve 'IronWebScraper' arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

  1. IronWebScraper'i İndirin ve Kod Çözüm Dizininiz içinde ~/Libs gibi bir konuma çıkartın
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, 'IronWebScraper.dll'

$999'dan başlayan lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez