ProdutosIntegraçõesRecursosDocumentaçãoPreços
Começar agora

© 2026 CapSolver. All rights reserved.

Contacte-nos

Slack: lola@capsolver.com

Produtos

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • Extensão de Navegador
  • Mais tipos de CAPTCHA

Integrações

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • Parceiros
  • Ver todas as integrações

Recursos

  • Programa de Referenciação
  • Documentação
  • Referência da API
  • Blog
  • FAQ
  • Glossário
  • Estado

Legal

  • Termos de Serviço
  • Política de Privacidade
  • Política de Reembolso
  • Não vender os meus dados pessoais
Blog/All/Como usar geziyor para Web Scraping
Oct07, 2024

Como usar geziyor para Web Scraping

Emma Foster

Emma Foster

Machine Learning Engineer

Geziyor: Uma Estrutura Poderosa de Raspagem da Web para Go

Geziyor é uma estrutura moderna de raspagem da web para Go, projetada para oferecer ferramentas poderosas para raspar sites e extrair dados de forma eficiente. Ao contrário de muitas bibliotecas de raspagem tradicionais, o Geziyor enfatiza a facilidade de uso, ao mesmo tempo em que fornece fluxos de trabalho de raspagem altamente personalizáveis.

Recursos Chave:

  • Suporte à Concorrência: Ele suporta operações assíncronas, permitindo que você raspa várias páginas simultaneamente, o que aumenta o desempenho.
  • Personalização de Solicitações: Modifique facilmente as solicitações HTTP, incluindo cabeçalhos, cookies e parâmetros personalizados.
  • Controle Automático: Ajuda a evitar a ativação de mecanismos anti-raspagem ao espaçar as solicitações para os servidores.
  • Cache e Persistência Integrados: Ele suporta o cache de dados raspados e respostas para evitar solicitações redundantes.
  • Extensibilidade: Oferece ganchos para estender a funcionalidade ou lidar com eventos como interceptação de solicitação/resposta, middlewares personalizados e muito mais.
  • Suporta Proxies: Integre facilmente proxies para girar IPs ou contornar restrições.

Pré-requisitos

Para usar o Geziyor, certifique-se de que você tenha:

  • Go 1.12+ instalado a partir do site oficial do Go.
  • Conhecimento básico da linguagem Go.

Instalação

Para instalar o Geziyor, você pode executar:

bash Copy
go get -u github.com/geziyor/geziyor

Exemplo Básico: Raspagem da Web com Geziyor

Aqui está um exemplo simples para raspar um site e imprimir os títulos dos artigos:

go Copy
package main

import (
    "github.com/geziyor/geziyor"
    "github.com/geziyor/geziyor/client"
    "github.com/PuerkitoBio/goquery"
    "log"
)

func main() {
    geziyor.NewGeziyor(&geziyor.Options{
        StartURLs: []string{"https://news.ycombinator.com"},
        ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
            r.HTMLDoc.Find(".storylink").Each(func(i int, s *goquery.Selection) {
                log.Println(s.Text())
            })
        },
    }).Start()
}

Exemplo Avançado: Raspagem com Cabeçalhos Personalizados e Solicitações POST

Às vezes, você precisa simular uma interação mais complexa com o servidor, como fazer login ou interagir com sites dinâmicos. Neste exemplo, mostraremos como enviar um cabeçalho personalizado e uma solicitação POST.

go Copy
package main

import (
    "github.com/geziyor/geziyor"
    "github.com/geziyor/geziyor/client"
    "log"
)

func main() {
    geziyor.NewGeziyor(&geziyor.Options{
        StartRequestsFunc: func(g *geziyor.Geziyor) {
            g.Do(&client.Request{
                Method: "POST",
                URL:    "https://httpbin.org/post",
                Body:   []byte(`{"username": "test", "password": "123"}`),
                Headers: map[string]string{
                    "Content-Type": "application/json",
                },
            })
        },
        ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
            log.Println(string(r.Body))
        },
    }).Start()
}

Lidando com Cookies e Sessões no Geziyor

Você pode precisar gerenciar cookies ou manter sessões durante a raspagem. O Geziyor simplifica o gerenciamento de cookies ao lidar automaticamente com cookies para cada solicitação, e você também pode personalizar o processo de gerenciamento de cookies se necessário.

go Copy
package main

import (
    "github.com/geziyor/geziyor"
    "github.com/geziyor/geziyor/client"
    "log"
)

func main() {
    geziyor.NewGeziyor(&geziyor.Options{
        StartRequestsFunc: func(g *geziyor.Geziyor) {
            g.Do(&client.Request{
                URL: "https://httpbin.org/cookies/set?name=value",
            })
        },
        ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
            log.Println("Cookies:", r.Cookies())
        },
    }).Start()
}

Usando Proxies com Geziyor

Para raspar um site, evitando restrições ou bloqueios de IP, você pode direcionar suas solicitações por meio de um proxy. Aqui está como configurar o suporte de proxy com o Geziyor:

go Copy
package main

import (
    "github.com/geziyor/geziyor"
    "github.com/geziyor/geziyor/client"
    "log"
)

func main() {
    geziyor.NewGeziyor(&geziyor.Options{
        StartRequestsFunc: func(g *geziyor.Geziyor) {
            g.Do(&client.Request{
                URL:    "https://httpbin.org/ip",
                Proxy:  "http://username:password@proxyserver:8080",
            })
        },
        ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
            log.Println(string(r.Body))
        },
    }).Start()
}

Lidando com Captchas com Geziyor

Embora o Geziyor não resolva captchas nativamente, você pode integrá-lo com um serviço de resolução de captcha, como o CapSolver. Aqui está como você pode usar o CapSolver para resolver captchas em conjunto com o Geziyor.

Exemplo: Resolvendo ReCaptcha V2 Usando Geziyor e CapSolver

Primeiro, você precisa integrar o CapSolver e lidar com solicitações para desafios de captcha.

go Copy
package main

import (
    "encoding/json"
    "github.com/geziyor/geziyor"
    "github.com/geziyor/geziyor/client"
    "log"
    "time"
)

const CAPSOLVER_KEY = "YourKey"

func createTask(url, key string) (string, error) {
    payload := map[string]interface{}{
        "clientKey": CAPSOLVER_KEY,
        "task": map[string]interface{}{
            "type":        "ReCaptchaV2TaskProxyLess",
            "websiteURL":  url,
            "websiteKey":  key,
        },
    }

    response, err := client.NewRequest().
        Method("POST").
        URL("https://api.capsolver.com/createTask").
        JSON(payload).
        Do()

    if err != nil {
        return "", err
    }

    var result map[string]interface{}
    json.Unmarshal(response.Body, &result)
    return result["taskId"].(string), nil
}

func getTaskResult(taskId string) (string, error) {
    payload := map[string]interface{}{
        "clientKey": CAPSOLVER_KEY,
        "taskId":    taskId,
    }

    for {
        response, err := client.NewRequest().
            Method("POST").
            URL("https://api.capsolver.com/getTaskResult").
            JSON(payload).
            Do()

        if err != nil {
            return "", err
        }

        var result map[string]interface{}
        json.Unmarshal(response.Body, &result)

        if result["status"] == "ready" {
            return result["solution"].(string), nil
        }

        time.Sleep(5 * time.Second)
    }
}

func main() {
    geziyor.NewGeziyor(&geziyor.Options{
        StartRequestsFunc: func(g *geziyor.Geziyor) {
            taskId, _ := createTask("https://example.com", "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf")
            solution, _ := getTaskResult(taskId)

            g.Do(&client.Request{
                Method: "POST",
                URL:    "https://example.com/submit",
                Body:   []byte(`g-recaptcha-response=` + solution),
            })
        },
        ParseFunc: func(g *geziyor.Geziyor, r *client.Response) {
            log.Println("Captcha Solved:", string(r.Body))
        },
    }).Start()
}

Otimizações de Desempenho com Geziyor

O Geziyor se destaca no tratamento de tarefas de raspagem de alto volume, mas o desempenho pode ser ainda mais otimizado ajustando algumas opções:

  • Concorrência: Aumente ConcurrentRequests para permitir várias solicitações paralelas.
  • Atraso na Solicitação: Implemente um atraso entre as solicitações para evitar a detecção.

Exemplo com concorrência e atraso:

go Copy
package main

import (
    "github.com/geziyor/geziyor"
    "github.com/geziyor/geziyor/client"
)

func main() {
    geziyor.NewGeziyor(&geziyor.Options{
        StartURLs:          []string{"https://example.com"},
        ParseFunc:          func(g *geziyor.Geziyor, r *client.Response) {},
        ConcurrentRequests: 10,
        RequestDelay:       2,
    }).Start()
}

Código Bônus

Pegue seu Código Bônus para as melhores soluções de captcha no CapSolver: scrape. Depois de resgatá-lo, você receberá um bônus extra de 5% após cada recarga, ilimitadas vezes.

Conclusão

O Geziyor é uma estrutura de raspagem da web poderosa, rápida e flexível para Go, tornando-a uma ótima escolha para desenvolvedores que desejam construir sistemas de raspagem escalonáveis. Seu suporte integrado para concorrência, solicitações personalizáveis e a capacidade de integrar com serviços externos como o CapSolver tornam-na uma ferramenta ideal para tarefas de raspagem simples e avançadas.

Se você está coletando dados de blogs, sites de comércio eletrônico ou construindo pipelines de raspagem personalizados, o Geziyor possui os recursos de que você precisa para começar rapidamente e com eficiência.

Ver mais

May 08, 2026

ReCAPTCHA na Raspagem de E-commerce: Um Guia Priorizando a Conformidade

Aprenda como lidar com o recaptcha durante a raspagem de e-commerce com fluxos de trabalho conformes, diagnósticos, exemplos do CapSolver e controles de risco práticos.

Adélia Cruz
Adélia Cruz
May 08, 2026

Como a Extração de Dados por IA Funciona: Resolução de CAPTCHA, Análise de Modelos de Linguagem de Grande Escala e Pipelines de Dados Estruturados da Web

Aprenda como a extração de dados com IA funciona, desde a raspagem de web e resolução de CAPTCHA até a limpeza de HTML, análise de LLM e geração de JSON estruturado. Explore estratégias de bypass anti-bot, frameworks de extração semântica como AXE e pipelines de raspagem de web com IA escaláveis.

Adélia Cruz

Índice

Adélia Cruz
May 07, 2026

Melhores Frameworks de Agentes de IA para Automação Web e Resolução de CAPTCHA

Compare os melhores frameworks de agentes de inteligência artificial para automação web, solução de CAPTCHA, conformidade e fluxos de trabalho de agentes prontos para produção em 2026.

Adélia Cruz
Adélia Cruz
May 07, 2026

Melhores Bibliotecas Java de Raspagem de Web para Extração Confiável de Dados

Compare os melhores bibliotecas de raspagem de web em Java, incluindo jsoup, Selenium, Playwright para Java, HtmlUnit, Apache Nutch e opções de API.

Adélia Cruz
Adélia Cruz