CAPSOLVER
Blog
Raspagem da Web em Golang com Colly

Web Scraping em Golang com Colly

Logo of CapSolver

Adélia Cruz

Neural Network Developer

04-Dec-2025

Web scraping é um método usado para extrair dados de sites. No Golang, a biblioteca Colly é uma ferramenta popular para web scraping devido à sua simplicidade e recursos poderosos. Este guia o levará por meio da configuração de um projeto Golang com o Colly, construção de um raspador básico, tratamento de cenários complexos de extração de dados e otimização dos seus raspadores com requisições concorrentes.

Configurando Seu Projeto em Golang

Antes de começar, certifique-se de que o Go está instalado no seu sistema. Inicialize seu projeto e obtenha o pacote Colly com os seguintes comandos:

bash Copy
go mod init my_scraper
go get -u github.com/gocolly/colly

Isso configura o diretório do seu projeto e instala o pacote Colly.

Resgatar Seu Código de Bônus do CapSolver

Aumente seu orçamento de automação instantaneamente!
Use o código de bônus CAPN ao recarregar sua conta do CapSolver para obter um bônus extra de 5% em cada recarga — sem limites.
Resgatar agora no seu Painel do CapSolver
.

Construindo um Raspador Básico

Vamos criar um raspador básico para extrair todos os links de uma página específica do Wikipedia.

  1. Crie um novo arquivo main.go e adicione o seguinte código:
go Copy
package main

import (
    "fmt"
    "github.com/gocolly/colly"
)

func main() {
    c := colly.NewCollector(
        colly.AllowedDomains("en.wikipedia.org"),
    )

    c.OnHTML(".mw-parser-output", func(e *colly.HTMLElement) {
        links := e.ChildAttrs("a", "href")
        fmt.Println(links)
    })

    c.Visit("https://en.wikipedia.org/wiki/Web_scraping")
}

Este código inicializa um novo coletor do Colly restrito a en.wikipedia.org, em seguida, configura um callback para encontrar e imprimir todos os links dentro do div .mw-parser-output da página.

Raspagem de Dados de Tabela

Para tarefas mais complexas, como raspagem de dados de tabela e gravação em um arquivo CSV, você pode usar o pacote encoding/csv no Go:

  1. Estenda o main.go com o seguinte código para raspar dados de tabela:
go Copy
package main

import (
    "encoding/csv"
    "log"
    "os"
    "github.com/gocolly/colly"
)

func main() {
    fName := "data.csv"
    file, err := os.Create(fName)
    if err != nil {
        log.Fatalf("Não foi possível criar o arquivo, err: %q", err)
        return
    }
    defer file.Close()

    writer := csv.NewWriter(file)
    defer writer.Flush()

    c := colly.NewCollector()

    c.OnHTML("table.wikitable", func(e *colly.HTMLElement) {
        e.ForEach("tr", func(_ int, row *colly.HTMLElement) {
            rowData := []string{}
            row.ForEach("td", func(_ int, cell *colly.HTMLElement) {
                rowData = append(rowData, cell.Text)
            })
            writer.Write(rowData)
        })
    })

    c.Visit("https://en.wikipedia.org/wiki/List_of_programming_languages")
}

Este script raspa dados de tabela de uma página do Wikipedia e os escreve no data.csv.

Fazendo Requisições Concorrentes

Para acelerar a raspagem, você pode fazer requisições concorrentes usando goroutines do Go. Aqui está como você pode raspar múltiplas páginas concorrentemente:

go Copy
package main

import (
    "fmt"
    "github.com/gocolly/colly"
    "sync"
)

func scrape(url string, wg *sync.WaitGroup) {
    defer wg.Done()
    
    c := colly.NewCollector()
    
    c.OnHTML("title", func(e *colly.HTMLElement) {
        fmt.Println("Título encontrado:", e.Text)
    })
    
    c.Visit(url)
}

func main() {
    var wg sync.WaitGroup
    urls := []string{
        "https://en.wikipedia.org/wiki/Web_scraping",
        "https://en.wikipedia.org/wiki/Data_mining",
        "https://en.wikipedia.org/wiki/Screen_scraping",
    }

    for _, url := range urls {
        wg.Add(1)
        go scrape(url, &wg)
    }

    wg.Wait()
}

Neste exemplo, definimos uma função scrape que recebe uma URL e um grupo de espera como argumentos. A função inicializa um coletor do Colly, configura um callback para imprimir o título da página e visita a URL. A função main cria um grupo de espera, itera sobre uma lista de URLs e inicia uma goroutine para cada URL para raspar concorrentemente.

Ao seguir estes passos, você pode construir raspadores robustos em Golang usando o Colly, lidar com diversos cenários de raspagem e otimizar o desempenho com requisições concorrentes. Para tutoriais mais detalhados e uso avançado, consulte recursos sobre raspagem de web com Go e Colly.

Outras Bibliotecas para Raspagem de Web em Go

Além do Colly, existem várias outras excelentes bibliotecas para raspagem de web no Golang:

  • GoQuery: Esta biblioteca oferece uma sintaxe e um conjunto de recursos semelhantes ao jQuery, permitindo que você execute operações de raspagem de web com facilidade, da mesma forma que faria com o jQuery.
  • Ferret: Um sistema de raspagem de web portátil, extensível e rápido projetado para simplificar a extração de dados da web. O Ferret se concentra na extração de dados usando uma linguagem declarativa única.
  • Selenium: Conhecido por suas capacidades de navegador sem interface gráfica, o Selenium é ideal para raspar conteúdo dinâmico. Embora não tenha suporte oficial para Go, existe uma versão portada que permite seu uso em projetos Go.

Conclusão

A raspagem de web é uma habilidade poderosa e essencial para extrair dados de sites de forma eficiente. Usando o Golang e a biblioteca Colly, você pode construir raspadores robustos que lidam com diversos cenários de extração de dados, desde a coleta de links simples até a extração de dados de tabelas complexas e otimizar o desempenho com requisições concorrentes.

Neste guia, você aprendeu como:

  1. Configurar um projeto Golang com a biblioteca Colly.
  2. Construir um raspador básico para extrair links de uma página da web.
  3. Lidar com extração de dados mais complexos, como raspar dados de tabelas e salvá-los em um arquivo CSV.
  4. Otimizar seus raspadores fazendo requisições concorrentes.

Ao seguir estes passos, você pode criar raspadores de web eficazes e eficientes no Golang, aproveitando a simplicidade e os recursos poderosos do Colly. Para uso avançado e tutoriais detalhados, explore recursos adicionais sobre raspagem de web com Go e Colly.

Perguntas Frequentes

1. O Colly é adequado para iniciantes que estão aprendendo raspagem de web no Golang?

Sim. O Colly foi projetado para ser simples e amigável para iniciantes, oferecendo recursos poderosos como parsing de DOM, tratamento de requisições, callbacks e concorrência. Mesmo desenvolvedores novos em Go podem rapidamente construir um raspador funcional com apenas algumas linhas de código.


2. O Colly pode raspar conteúdo estruturado, como tabelas ou listas?

Absolutamente. O Colly permite a seleção de nós e atributos específicos do HTML, o que torna fácil extrair tabelas, listas, links e outros elementos estruturados. Você também pode armazenar os resultados diretamente em arquivos como CSV ou JSON usando as bibliotecas padrão do Go.


3. Como posso acelerar meu raspador web do Colly?

Você pode usar as goroutines do Go para processar múltiplas páginas em paralelo. Ao lançar raspadores concorrentemente e sincronizá-los com um grupo de espera, o desempenho da raspagem aumenta significativamente — especialmente para conjuntos de dados grandes ou tarefas de varredura de múltiplas URLs.

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais

Raspagem de Web com Selenium e Python
Web Scraping com Selenium e Python | Resolvendo Captcha Ao Fazer Web Scraping

Neste artigo, você vai se familiarizar com a raspagem de dados da web usando o Selenium e o Python, e aprender a resolver o Captcha envolvido no processo para uma extração de dados eficiente.

web scraping
Logo of CapSolver

Anh Tuan

04-Dec-2025

Web Scraping em Golang com Colly
Web Scraping em Golang com Colly

Neste blog, exploramos o mundo da raspagem de web usando a biblioteca Colly em Golang. O guia começa ajudando você a configurar seu projeto Golang e instalar o pacote Colly. Em seguida, percorreremos a criação de um raspador básico para extrair links de uma página da Wikipedia, demonstrando a facilidade de uso e os recursos poderosos do Colly.

web scraping
Logo of CapSolver

Adélia Cruz

04-Dec-2025

O que é Web Scraping
O que é Web Scraping | Casos de uso comuns e problemas

Conheça o web scraping: aprenda seus benefícios, resolva desafios com facilidade e impulso seu negócio com o CapSolver.

web scraping
Logo of CapSolver

Ethan Collins

03-Dec-2025

O que é puppeteer
O que é o Puppeteer e como usá-lo em web scraping | Guia Completo 2026

Este guia completo vai explorar o que é o Puppeteer e como usá-lo de forma eficaz na raspagem de web.

web scraping
Logo of CapSolver

Nikolai Smirnov

03-Dec-2025

Como Fazer um Agente de IA para Coleta de Dados da Web (Tutorial para Iniciantes)
Como Fazer um Scraper de Web com Agente de IA (Guia Amigável para Iniciantes)

Aprenda como criar um raspador de web de agente de IA do zero com este tutorial amigável para iniciantes. Descubra os componentes principais, exemplos de código e como burlar medidas anti-bot como os CAPTCHAs para coleta de dados confiável.

web scraping
Logo of CapSolver

Adélia Cruz

02-Dec-2025

Como Integrar a Resolução de CAPTCHA no Seu Fluxo de Trabalho de Scraping com IA
Como integrar a resolução de CAPTCHA no seu fluxo de trabalho de raspagem com IA

Domine a integração de serviços de resolução de CAPTCHA no seu fluxo de trabalho de scraping com IA. Aprenda melhores práticas para reCAPTCHA v3, Cloudflare e AWS WAF para garantir uma coleta de dados confiável e em grande volume.

web scraping
Logo of CapSolver

Adélia Cruz

28-Nov-2025