🎯 Um navegador em nuvem personalizável e anti-detecção alimentado por Chromium desenvolvido internamente, projetado para rastreadores web e agentes de IA. 👉Experimente agora
De volta ao blog

Automação de Navegador Sobre MCP: Controle um Navegador na Nuvem com Scrapeless

Ethan Brown
Ethan Brown

Advanced Bot Mitigation Engineer

22-Jul-2026

TL;DR:

  • O Servidor MCP Scrapeless expõe 16 ferramentas browser_* que controlam um navegador em nuvem hospedado, permitindo que um script clique, role, navegue e leia páginas renderizadas sem o Chromium local.
  • browser_create retorna um id de sessão, e cada chamada posterior, browser_goto, browser_get_text, browser_close, transporta esse id para agir no mesmo navegador.
  • As ferramentas renderizam JavaScript: navegar por uma página de cotações renderizadas pelo cliente e lê-la retorna 10 citações renderizadas.
  • Esta é a contrapartida de scrape_markdown: use a ferramenta de conteúdo para uma página que você possa buscar em uma única chamada, e as ferramentas do navegador quando a página precisar de interação ou espera.
  • Nenhuma chave de provedor de modelo está envolvida, porque as ferramentas do navegador são chamadas diretamente através da sessão MCP.
  • Comece no plano gratuito do Scrapeless e dirija seu primeiro navegador em nuvem.

Algumas páginas não entregam seu conteúdo em uma única solicitação. Os dados aparecem após um clique, uma rolagem ou uma espera para que um script seja executado, e uma busca única retorna o shell antes que qualquer um desses eventos ocorra. O Servidor MCP Scrapeless responde a isso com um conjunto de ferramentas de navegador que controlam um verdadeiro navegador em nuvem através do Protocolo de Contexto do Modelo, permitindo que seu código emita ações de alto nível enquanto o navegador opera na infraestrutura do Scrapeless.

Este guia conecta-se ao servidor, lista as ferramentas do navegador, e conduz uma sessão desde a criação até uma leitura renderizada a um fechamento limpo, tudo verificado contra o servidor ao vivo e o navegador ao vivo. Não há modelo no loop, portanto, nada aqui é uma lacuna.

O Servidor MCP Scrapeless oferece 21 ferramentas, sendo 16 delas controles de navegador: criação e encerramento, navegação, clique, digitação, rolagem, pressionamento de teclas, capturas de tela e esperas. Elas controlam um navegador em nuvem Scrapeless, que oferece o mesmo tipo de controle programático que uma pilha de automação local obtém do Protocolo DevTools do Chrome, exceto que o navegador é remoto e não há nada para instalar. O post do Navegador de Scraping Scrapeless cobre esse navegador em nuvem e seu modelo de concorrência em profundidade.

Essas ferramentas estão ao lado das ferramentas de conteúdo. scrape_markdown retorna uma página em uma única chamada e é a escolha certa quando uma busca é suficiente. As ferramentas browser_* são para as páginas que precisam de uma sessão: interagir, esperar e então ler.

Pré-requisitos

  • Python 3.10 ou posterior.
  • Uma chave API do Scrapeless do painel, exportada como SCRAPELESS_API_KEY.
  • Nenhum navegador local. As ferramentas controlam um navegador em nuvem no Scrapeless.

Instalação

Instale a biblioteca cliente MCP.

bash Copy
pip install mcp

Defina sua chave Scrapeless no shell. Use a chave real em tempo de execução e mantenha o espaço reservado fora do seu código-fonte.

bash Copy
export SCRAPELESS_API_KEY="sk_your_key_here"

Abra uma conexão HTTP transmitível com o servidor, inicialize a sessão e liste as ferramentas. Filtrar pelo prefixo browser_ mostra o vocabulário de interação que o navegador em nuvem oferece.

python Copy
import asyncio
import os

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client


async def main() -> None:
    async with streamablehttp_client(
        "https://api.scrapeless.com/mcp", headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]}
    ) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            names = sorted(tool.name for tool in (await session.list_tools()).tools)
            browser_tools = [name for name in names if name.startswith("browser_")]
            print("total tools:", len(names))
            print("browser tools:", len(browser_tools))
            print(", ".join(browser_tools))


asyncio.run(main())

O servidor relata 21 ferramentas, 16 delas são controles de navegador.

text Copy
total tools: 21
browser tools: 16
browser_click, browser_close, browser_create, browser_get_html, browser_get_text, browser_go_back, browser_go_forward, browser_goto, browser_press_key, browser_screenshot, browser_scroll, browser_scroll_to, browser_snapshot, browser_type, browser_wait, browser_wait_for

A camada de transporte e mensagem segue a especificação do Protocolo de Contexto do Modelo, que se baseia na especificação JSON-RPC 2.0.

As ferramentas do navegador são stateful, então o padrão é criar, agir, ler, fechar. browser_create retorna um ID de sessão em seu texto; capture-o e passe-o para todas as chamadas posteriores. O exemplo navega até uma página de citações renderizada em JavaScript e lê o texto renderizado de volta.

python Copy
import asyncio
import os
import re

from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client


def text_of(result) -> str:
    return "\n".join(block.text for block in result.content if getattr(block, "type", None) == "text")


async def main() -> None:
    async with streamablehttp_client(
        "https://api.scrapeless.com/mcp", headers={"x-api-token": os.environ["SCRAPELESS_API_KEY"]}
    ) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()

            created = text_of(await session.call_tool("browser_create", {}))
            session_id = re.search(r"ID:\s*([a-z0-9-]+)", created).group(1)
            print("sessão criada:", bool(session_id))

            await session.call_tool("browser_goto", {"sessionId": session_id, "url": "https://quotes.toscrape.com/js/"})
            text = text_of(await session.call_tool("browser_get_text", {"sessionId": session_id}))
            print("citações renderizadas:", text.count("Tags:"))
            print("contém uma citação:", "O mundo como o criamos" in text)

            await session.call_tool("browser_close", {"sessionId": session_id})
            print("sessão fechada: True")


asyncio.run(main())

A página de citações extrai seu conteúdo com JavaScript, e o navegador na nuvem o executa, então browser_get_text retorna as citações renderizadas em vez de um shell vazio.

text Copy
sessão criada: True
citações renderizadas: 10
contém uma citação: True
sessão fechada: True

As 10 citações renderizadas são a prova de que o navegador executou o JavaScript da página; um simples fetch da mesma URL retorna zero. A partir daqui, browser_click, browser_type e browser_scroll estendem a sessão para páginas que precisam de interação antes que o conteúdo apareça, e browser_close libera o navegador na nuvem quando o trabalho é concluído.

Conclusão

As ferramentas de navegador Scrapeless MCP transformam um navegador na nuvem em um conjunto de ações de alto nível que qualquer cliente MCP pode chamar. Conecte-se, liste as 16 ferramentas de navegador, crie uma sessão, navegue, leia o texto renderizado e feche, tudo sem um navegador local e sem modelo no loop. Use scrape_markdown quando uma chamada obtiver a página, e as ferramentas de navegador quando a página precisar de uma sessão para liberar seu conteúdo. Comece a partir dos scripts acima e adicione os cliques, digitações e rolagens que seu alvo requer.

Crie uma conta gratuita no Scrapeless para obter uma chave de API e verifique os preços do Scrapeless ao planejar um trabalho recorrente.

FAQ

Q: As ferramentas de navegador Scrapeless MCP precisam de um navegador local?

Não. As ferramentas browser_* controlam um navegador na nuvem hospedado no Scrapeless, assim um script controla um navegador real sem uma instalação local do Chromium. Essa é a diferença em relação a uma pilha de automação local: o navegador roda remotamente e você emite ações através da sessão MCP.

Q: Como as ferramentas de navegador mantêm estado entre as chamadas?

browser_create retorna um ID de sessão e cada chamada subsequente passa esse ID como argumento sessionId. O ID vincula browser_goto, browser_get_text e as ferramentas de interação ao mesmo navegador, que é como um fluxo de várias etapas atua em uma página em vez de começar de novo a cada chamada.

Q: Como isso é diferente de scrape_markdown?

scrape_markdown busca e retorna uma página em uma única chamada, o que é ideal quando o conteúdo está lá para ler. As ferramentas de navegador abrem uma sessão stateful para páginas que precisam de cliques, digitação, rolagem ou uma espera antes que o conteúdo exista, e retornam o resultado renderizado que a ferramenta de conteúdo não pode alcançar nessas páginas.

Q: As ferramentas de navegador renderizam JavaScript?

Sim. O navegador na nuvem executa os scripts da página, então navegar em uma página renderizada pelo cliente e chamar browser_get_text retorna o conteúdo renderizado, que na execução verificada foram 10 citações de uma página de citações em JavaScript. Um simples fetch da mesma página não retorna nenhuma delas.

Q: Quais ferramentas de navegador estão disponíveis?

O servidor expõe 16: browser_create, browser_close, browser_goto, browser_go_back, browser_go_forward, browser_get_text, browser_get_html, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_screenshot, browser_snapshot, browser_wait e browser_wait_for. Juntas, elas cobrem navegação, interação, espera e leitura.

Q: Preciso de uma chave de provedor de modelo para usar as ferramentas de navegador?
Não. As ferramentas do navegador são chamadas diretamente através da sessão MCP com apenas a chave da API Scrapeless, uma vez que não há um modelo decidindo qual ferramenta chamar. Uma chave de provedor de modelo só teria importância se você entregasse essas ferramentas a um framework de agente e deixasse um modelo controlá-las.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo