Webscraping in C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

O que é o IronWebScraper?

IronWebScraper é uma biblioteca de classes e um framework para C# e a plataforma de programação .NET que permite aos desenvolvedores ler sites programaticamente e extrair seu conteúdo. Isso é ideal para fazer engenharia reversa de sites ou intranets existentes e transformá-los novamente em bancos de dados ou dados JSON. Também é útil para baixar grandes volumes de documentos da internet.

Em muitos aspectos, o Iron Web Scraper é semelhante à biblioteca Scrapy for Python, mas aproveita as vantagens do C#, particularmente sua capacidade de percorrer o código passo a passo durante o processo de web scraping e depurá-lo.

Instalação

O primeiro passo será instalar o Iron Web Scraper, o que você pode fazer pelo NuGet ou baixando o arquivo DLL do nosso site.

Todas as classes de que você precisará podem ser encontradas no namespace Iron Web Scraper.

Install-Package IronWebScraper

Casos de uso populares

Migração de sites para bancos de dados

O IronWebScraper fornece as ferramentas e os métodos que permitem reestruturar seus sites em bancos de dados estruturados. Essa tecnologia é útil ao migrar conteúdo de sites e intranets legados para seu novo aplicativo C#.

Migração de Websites

A capacidade de extrair facilmente o conteúdo de um site, parcial ou completo, em C# reduz o tempo e o custo envolvidos na migração ou atualização de recursos de sites e intranets. Isso pode ser significativamente mais eficiente do que transformações SQL diretas, pois simplifica os dados para o formato visualizável em cada página da web, sem exigir a compreensão das estruturas de dados SQL anteriores ou a criação de consultas SQL complexas.

Preenchendo índices de pesquisa

O Iron Web Scraper pode ser configurado para acessar seu próprio site ou intranet, ler dados estruturados, analisar cada página e extrair os dados corretos para que um mecanismo de busca dentro da sua organização seja preenchido com precisão.

IronWebScraper é uma ferramenta ideal para extrair conteúdo para o seu índice de pesquisa. Um aplicativo de busca como o IronSearch pode ler conteúdo estruturado do IronWebScraper para construir um poderoso sistema de busca empresarial.

Usando o Iron Webscraper

Para aprender a usar o Iron Web Scraper, o melhor é consultar exemplos. Este exemplo básico cria uma classe para extrair títulos de um blog de um site.

using IronWebScraper;

namespace WebScrapingProject
{
    class MainClass
    {
        public static void Main(string [] args)
        {
            var scraper = new BlogScraper();
            scraper.Start();
        }
    }

    class BlogScraper : WebScraper
    {
        // Initialize scraper settings and make the first request
        public override void Init()
        {
            // Set logging level to show all log messages
            this.LoggingLevel = WebScraper.LogLevel.All;

            // Request the initial page to start scraping
            this.Request("https://ironpdf.com/blog/", Parse);
        }

        // Method to handle parsing of the page response
        public override void Parse(Response response)
        {
            // Loop through each blog post title link found by CSS selector
            foreach (var title_link in response.Css("h2.entry-title a"))
            {
                // Clean and extract the title text
                string strTitle = title_link.TextContentClean;

                // Store the extracted title for later use
                Scrape(new ScrapedData() { { "Title", strTitle } });
            }

            // Check if there is a link to the previous post page and if exists, follow it
            if (response.CssExists("div.prev-post > a[href]"))
            {
                // Get the URL for the next page
                var next_page = response.Css("div.prev-post > a[href]")[0].Attributes["href"];

                // Request the next page to continue scraping
                this.Request(next_page, Parse);
            }
        }
    }
}
using IronWebScraper;

namespace WebScrapingProject
{
    class MainClass
    {
        public static void Main(string [] args)
        {
            var scraper = new BlogScraper();
            scraper.Start();
        }
    }

    class BlogScraper : WebScraper
    {
        // Initialize scraper settings and make the first request
        public override void Init()
        {
            // Set logging level to show all log messages
            this.LoggingLevel = WebScraper.LogLevel.All;

            // Request the initial page to start scraping
            this.Request("https://ironpdf.com/blog/", Parse);
        }

        // Method to handle parsing of the page response
        public override void Parse(Response response)
        {
            // Loop through each blog post title link found by CSS selector
            foreach (var title_link in response.Css("h2.entry-title a"))
            {
                // Clean and extract the title text
                string strTitle = title_link.TextContentClean;

                // Store the extracted title for later use
                Scrape(new ScrapedData() { { "Title", strTitle } });
            }

            // Check if there is a link to the previous post page and if exists, follow it
            if (response.CssExists("div.prev-post > a[href]"))
            {
                // Get the URL for the next page
                var next_page = response.Css("div.prev-post > a[href]")[0].Attributes["href"];

                // Request the next page to continue scraping
                this.Request(next_page, Parse);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Para extrair dados de um site específico, precisaremos criar nossa própria classe para ler esse site. Essa classe estenderá a classe Web Scraper. Adicionaremos alguns métodos a esta classe, incluindo Init, onde podemos definir configurações iniciais e iniciar a primeira solicitação, o que, por sua vez, causará uma reação em cadeia onde todo o site será raspado.

Também devemos adicionar pelo menos um método Parse. Os métodos de análise sintática leem páginas da web baixadas da internet e usam seletores CSS semelhantes ao jQuery para selecionar o conteúdo e extrair o texto e/ou as imagens relevantes para uso.

Dentro de um método Parse, também podemos especificar quais hyperlinks desejamos que o rastreador continue a seguir e quais ele irá ignorar.

Podemos usar o método Scrape para extrair quaisquer dados e armazená-los em um formato de arquivo conveniente, semelhante ao JSON, para uso posterior.

Seguindo em frente

Para saber mais sobre o Iron Web Scraper, recomendamos que você leia a Documentação de Referência da API e, em seguida, comece a analisar os exemplos na seção de tutoriais da nossa documentação.

O próximo exemplo que recomendamos que você veja é o exemplo de web scraping em C# de "blog" , onde aprendemos como podemos extrair o conteúdo de texto de um blog, como um blog do WordPress. Isso pode ser muito útil em uma migração de site.

A partir daí, você pode prosseguir para outros exemplos avançados de tutoriais de web scraping, onde podemos analisar conceitos como sites com muitos tipos diferentes de páginas, sites de comércio eletrônico e também como usar vários proxies, identidades e logins ao extrair dados da internet.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 131,175 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronWebScraper
executar um exemplo Observe como seu site alvo se transforma em dados estruturados.