
Adélia Cruz
Neural Network Developer

capsolver-core se adequa a scripts do Playwright, capsolver-agent se adequa a agentes de chamada de ferramenta e capsolver-mcp se adequa a clientes compatíveis com MCP.A automação de extração de dados de notícias de licitação deve ser construída como uma etapa de agente monitorado com transições de estado claras. CapSolver deve ser integrado como uma capacidade de agente documentada: o navegador ou modelo detecta um desafio de verificação, a ferramenta aprovada o trata e o agente retoma apenas quando a tarefa autorizada pelo usuário original ainda é válida. A documentação oficial do CapSolver AI descreve três camadas práticas: CapSolver para Agentes de IA para arquitetura, Core SDK modo navegador para fluxos do Playwright, esquemas de ferramentas de agente para chamadas controladas por modelo e ferramentas de serviço MCP para clientes que descobrem ferramentas pelo Protocolo de Contexto de Modelo. Este artigo transforma essas documentações em um fluxo de automação de extração de dados de notícias de licitação com código, regras de parada e campos de registro.
A documentação do CapSolver AI descreve três camadas. Use a camada mais baixa que corresponda ao seu modelo de propriedade: Core SDK quando seu código controla o navegador, ferramentas de agente quando um modelo decide quando chamar uma ferramenta e serviço MCP quando seu cliente de IA deve descobrir ferramentas de solução automaticamente.
pip install "capsolver-core[playwright] @ git+https://github.com/capsolver-ai/capsolver-core.git"
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
pip install "capsolver-mcp[browser] @ git+https://github.com/capsolver-ai/capsolver-mcp.git"
playwright install chromium
export CAPSOLVER_API_KEY="sua-chave-da-api-do-capsolver"
A Introdução e Início Rápido explica os papéis dos pacotes: capsolver-core expõe o motor, capsolver-agent o envolve como ferramentas e capsolver-mcp expõe a mesma capacidade a clientes MCP. Mantenha a chave da API em configuração de ambiente e evite colocá-la em prompts, logs, capturas de tela ou exemplos de artigos.
O fluxo mais seguro de automação de extração de dados de notícias de licitação separa a descoberta, a extração de detalhes, o parsing de anexos e a revisão. O tratamento de CAPTCHA pertence entre o acesso à página e a extração, nunca após os dados já terem sido misturados com conteúdo não verificado.
states = [
"discover_notice_list",
"open_notice_detail",
"challenge_detected",
"resume_after_solution",
"extract_public_fields",
"review_or_stop",
]
required_fields = ["notice_id", "buyer", "deadline", "source_url"]
Essa estrutura ajuda o agente a relatar exatamente onde parou. Também mantém a camada de extração independente da camada de desafio.
Use capsolver-core quando seu fluxo de automação de extração de dados de notícias de licitação já possui uma página do Playwright. O caminho oficial do SDK Core é detectar, ler as informações de CAPTCHA, resolver e preencher o token de volta na página. A chamada de navegador completa é útil quando a estrutura da página é dinâmica.
import asyncio
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright
TARGET_URL = "https://example.gov/tenders/search"
async def run_agent_step():
async with async_playwright() as pw:
browser = await pw.chromium.launch()
page = await browser.new_page()
await page.goto(TARGET_URL, wait_until="domcontentloaded")
async with create_capsolver(api_key="SUA_CHAVE_CAPSOLVER") as cap:
captcha_types = await cap.detect(page)
if not captcha_types:
return "continue_without_challenge"
results = await cap.solve_on_page(page)
solved = [r for r in results if r.solution and not r.error]
if not solved:
return "stop_for_review"
return "resume_original_authorized_task"
asyncio.run(run_agent_step())
O detalhe importante de engenharia é o valor de retorno, não apenas o token. Seu agente deve continuar apenas quando a tarefa original ainda for legal, razoável e autorizada pelo usuário. Deve parar quando a página solicitar dados privados, restritos, sensíveis ou não autorizados.
Use capsolver-agent quando o modelo deve decidir quando o tratamento de desafio é necessário. A guia de Ferramentas de Agente expõe definições de ferramentas com get_all_tools() e roteia chamadas de ferramentas de modelo por meio de create_executor().
import json
from openai import OpenAI
from capsolver_agent.schema import create_executor, get_all_tools
client = OpenAI()
executor = create_executor(api_key="SUA_CHAVE_CAPSOLVER", default_timeout=120)
tools = [tool.to_openai_function() for tool in get_all_tools()]
messages = [{
"role": "user",
"content": "Continue a tarefa aprovada do navegador. Se um CAPTCHA aparecer, chame a ferramenta CapSolver uma vez e relate o resultado."
}]
async def run_one_turn():
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
)
for call in response.choices[0].message.tool_calls or []:
args = json.loads(call.function.arguments)
result = await executor.execute(call.function.name, args)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result),
})
Para automação de extração de dados de notícias de licitação, vincule esse caminho de ferramenta a uma política de revisão. O modelo pode solicitar a ferramenta, mas seu aplicativo decide o escopo de URL permitido, o número máximo de tentativas e se o resultado pode ser usado para continuar.
Resgate seu Código Promocional do CapSolver
Aumente seu orçamento de automação instantaneamente!
Use o código promocional CAP26 ao recarregar sua conta do CapSolver para obter um bônus adicional de 5% em cada recarga — sem limites.
Resgate-o agora em seu Painel do CapSolver
Antes de chamar qualquer ferramenta de desafio, confirme que a tarefa foi autorizada pelo usuário, o alvo está dentro da lista de domínios aprovados e os dados acessados são públicos ou de outra forma permitidos. Um fluxo de automação de extração de dados de notícias de licitação nunca deve tratar capacidade técnica como permissão.
Use um orçamento pequeno de tentativas. Uma tentativa de estado de navegador e uma tentativa de cooldown geralmente são suficientes. Eventos repetidos de desafio devem criar um ticket de revisão em vez de continuar silenciosamente.
Capture URL, horário, tipo de desafio, caminho do pacote do CapSolver, número de tentativas, estado do resultado e estado final da página. Não armazene conteúdo de página não relacionado, credenciais, segredos de sessão ou dados pessoais, a menos que sua política os permita explicitamente.
Para automação de extração de dados de notícias de licitação, mantenha a execução legal e baseada em evidências: respeite comportamento de códigos de status HTTP, requisitos de acessibilidade, gestão de riscos de privacidade e gestão de dados públicos.
Um artigo de automação de extração de dados de notícias de licitação forte deve mostrar caminhos de implementação reais, e um fluxo de produção forte deve fazer o mesmo. A escolha prática é simples: use capsolver-core para automação de navegador controlada pelo código, capsolver-agent para agentes de chamada de ferramenta e capsolver-mcp para clientes compatíveis com MCP. Mantenha o tratamento de desafio limitado, registrado e vinculado a trabalho autorizado legalmente pelo usuário. Quando sua equipe estiver pronta para adicionar essa camada de recuperação a um fluxo de agente, comece com CapSolver e a documentação oficial de agentes de IA.
Use capsolver-core quando seu aplicativo controla o código do navegador, capsolver-agent quando um modelo deve chamar uma ferramenta e capsolver-mcp quando o cliente de IA deve descobrir ferramentas por meio do MCP.
Não. O modelo pode solicitar uma chamada de ferramenta, mas o aplicativo deve impor escopo, limites de tentativas e condições de parada.
Não. O tratamento de CAPTCHA não concede permissão. Use-o apenas em fluxos autorizados legalmente, razoavelmente e pelo usuário, que respeitem os termos do site e os direitos de dados.
Registre a URL de origem, tipo de desafio, caminho da ferramenta, número de tentativas, estado do resultado e estado final da página. Mantenha credenciais e conteúdo de página não relacionado fora dos logs.
Aprenda arquitetura de raspagem web escalável em Rust com reqwest, scraper, raspagem assíncrona, raspagem de navegador headless, rotação de proxies e tratamento de CAPTCHA compatível.

Compare o Selenium vs Puppeteer para resolver CAPTCHA. Descubra benchmarks de desempenho, notas de estabilidade e como integrar o CapSolver para o máximo de sucesso.
