Add pt-BR docs translation (#3039)

* docs: add pt-br translations

Powered by a CrewAI Flow https://github.com/danielfsbarreto/docs_translator

* Update mcp/overview.mdx brazilian docs

Its en-US counterpart was updated after I did a pass,
so now it includes the new section about @CrewBase
This commit is contained in:
Daniel Barreto
2025-06-25 12:52:33 -03:00
committed by GitHub
parent f6dfec61d6
commit a50fae3a4b
339 changed files with 33822 additions and 517 deletions

View File

@@ -0,0 +1,50 @@
---
title: Carregador Web Browserbase
description: O Browserbase é uma plataforma para desenvolvedores para executar, gerenciar e monitorar navegadores headless de forma confiável.
icon: browser
---
# `BrowserbaseLoadTool`
## Descrição
[Browserbase](https://browserbase.com) é uma plataforma para desenvolvedores que permite executar, gerenciar e monitorar navegadores headless de forma confiável.
Potencialize suas buscas de dados para IA com:
- [Infraestrutura Serverless](https://docs.browserbase.com/under-the-hood) fornecendo navegadores confiáveis para extrair dados de interfaces complexas
- [Modo Stealth](https://docs.browserbase.com/features/stealth-mode) com táticas de fingerprinting e resolução automática de captcha incluídas
- [Depurador de Sessão](https://docs.browserbase.com/features/sessions) para inspecionar sua Sessão do Navegador com linha do tempo de rede e logs
- [Depuração Ao Vivo](https://docs.browserbase.com/guides/session-debug-connection/browser-remote-control) para depurar rapidamente sua automação
## Instalação
- Obtenha uma chave de API e o Project ID em [browserbase.com](https://browserbase.com) e defina-os nas variáveis de ambiente (`BROWSERBASE_API_KEY`, `BROWSERBASE_PROJECT_ID`).
- Instale o [SDK do Browserbase](http://github.com/browserbase/python-sdk) juntamente com o pacote `crewai[tools]`:
```shell
pip install browserbase 'crewai[tools]'
```
## Exemplo
Utilize o BrowserbaseLoadTool conforme abaixo para permitir que seu agente carregue sites:
```python Code
from crewai_tools import BrowserbaseLoadTool
# Inicialize a ferramenta com a chave da API do Browserbase e o Project ID
tool = BrowserbaseLoadTool()
```
## Argumentos
Os parâmetros a seguir podem ser usados para customizar o comportamento do `BrowserbaseLoadTool`:
| Argumento | Tipo | Descrição |
|:-----------------|:----------|:----------------------------------------------------------------------------------------------------------------------------------|
| **api_key** | `string` | _Opcional_. Chave de API do Browserbase. Padrão é a variável de ambiente `BROWSERBASE_API_KEY`. |
| **project_id** | `string` | _Opcional_. Project ID do Browserbase. Padrão é a variável de ambiente `BROWSERBASE_PROJECT_ID`. |
| **text_content** | `bool` | _Opcional_. Recuperar somente o conteúdo em texto. O padrão é `False`. |
| **session_id** | `string` | _Opcional_. Forneça um Session ID existente. |
| **proxy** | `bool` | _Opcional_. Habilitar/Desabilitar proxies. O padrão é `False`. |

View File

@@ -0,0 +1,47 @@
---
title: Firecrawl Crawl Website
description: O `FirecrawlCrawlWebsiteTool` foi projetado para rastrear e converter sites em markdown limpo ou dados estruturados.
icon: fire-flame
---
# `FirecrawlCrawlWebsiteTool`
## Descrição
[Firecrawl](https://firecrawl.dev) é uma plataforma para rastrear e converter qualquer site em markdown limpo ou dados estruturados.
## Instalação
- Obtenha uma chave de API em [firecrawl.dev](https://firecrawl.dev) e defina-a nas variáveis de ambiente (`FIRECRAWL_API_KEY`).
- Instale o [SDK do Firecrawl](https://github.com/mendableai/firecrawl) junto com o pacote `crewai[tools]`:
```shell
pip install firecrawl-py 'crewai[tools]'
```
## Exemplo
Utilize o FirecrawlScrapeFromWebsiteTool como a seguir para permitir que seu agente carregue sites:
```python Code
from crewai_tools import FirecrawlCrawlWebsiteTool
tool = FirecrawlCrawlWebsiteTool(url='firecrawl.dev')
```
## Argumentos
- `api_key`: Opcional. Especifica a chave de API do Firecrawl. Por padrão, utiliza a variável de ambiente `FIRECRAWL_API_KEY`.
- `url`: A URL base para iniciar o rastreamento.
- `page_options`: Opcional.
- `onlyMainContent`: Opcional. Retorna apenas o conteúdo principal da página, excluindo cabeçalhos, navegações, rodapés, etc.
- `includeHtml`: Opcional. Inclui o conteúdo HTML bruto da página. Vai adicionar uma chave html na resposta.
- `crawler_options`: Opcional. Opções para controlar o comportamento do rastreamento.
- `includes`: Opcional. Padrões de URL para incluir no rastreamento.
- `exclude`: Opcional. Padrões de URL para excluir do rastreamento.
- `generateImgAltText`: Opcional. Gera texto alternativo para imagens usando LLMs (requer um plano pago).
- `returnOnlyUrls`: Opcional. Se verdadeiro, retorna apenas as URLs como uma lista no status do rastreamento. Nota: a resposta será uma lista de URLs dentro do campo data, não uma lista de documentos.
- `maxDepth`: Opcional. Profundidade máxima de rastreamento. Profundidade 1 é a URL base, profundidade 2 inclui a URL base e seus filhos diretos, e assim por diante.
- `mode`: Opcional. O modo de rastreamento a ser utilizado. O modo rápido rastreia 4x mais rápido em sites sem sitemap, mas pode não ser tão preciso e não deve ser usado em sites fortemente renderizados com JavaScript.
- `limit`: Opcional. Número máximo de páginas a serem rastreadas.
- `timeout`: Opcional. Tempo limite em milissegundos para a operação de rastreamento.

View File

@@ -0,0 +1,43 @@
---
title: Firecrawl Scrape Website
description: A ferramenta `FirecrawlScrapeWebsiteTool` foi projetada para fazer scraping de sites e convertê-los em markdown limpo ou dados estruturados.
icon: fire-flame
---
# `FirecrawlScrapeWebsiteTool`
## Descrição
[Firecrawl](https://firecrawl.dev) é uma plataforma para rastrear e converter qualquer site em markdown limpo ou dados estruturados.
## Instalação
- Obtenha uma chave de API em [firecrawl.dev](https://firecrawl.dev) e defina-a nas variáveis de ambiente (`FIRECRAWL_API_KEY`).
- Instale o [Firecrawl SDK](https://github.com/mendableai/firecrawl) junto com o pacote `crewai[tools]`:
```shell
pip install firecrawl-py 'crewai[tools]'
```
## Exemplo
Utilize o FirecrawlScrapeWebsiteTool da seguinte forma para permitir que seu agente carregue sites:
```python Code
from crewai_tools import FirecrawlScrapeWebsiteTool
tool = FirecrawlScrapeWebsiteTool(url='firecrawl.dev')
```
## Argumentos
- `api_key`: Opcional. Especifica a chave de API do Firecrawl. O padrão é a variável de ambiente `FIRECRAWL_API_KEY`.
- `url`: A URL a ser raspada.
- `page_options`: Opcional.
- `onlyMainContent`: Opcional. Retorna apenas o conteúdo principal da página, excluindo cabeçalhos, navegações, rodapés, etc.
- `includeHtml`: Opcional. Inclui o conteúdo HTML bruto da página. Irá gerar uma chave html na resposta.
- `extractor_options`: Opcional. Opções para extração baseada em LLM de informações estruturadas do conteúdo da página
- `mode`: O modo de extração a ser utilizado, atualmente suporta 'llm-extraction'
- `extractionPrompt`: Opcional. Um prompt descrevendo quais informações extrair da página
- `extractionSchema`: Opcional. O esquema para os dados a serem extraídos
- `timeout`: Opcional. Timeout em milissegundos para a requisição

View File

@@ -0,0 +1,41 @@
---
title: Firecrawl Search
description: O `FirecrawlSearchTool` foi projetado para pesquisar sites e convertê-los em markdown limpo ou dados estruturados.
icon: fire-flame
---
# `FirecrawlSearchTool`
## Descrição
[Firecrawl](https://firecrawl.dev) é uma plataforma para rastrear e converter qualquer site em markdown limpo ou dados estruturados.
## Instalação
- Obtenha uma chave de API em [firecrawl.dev](https://firecrawl.dev) e defina-a nas variáveis de ambiente (`FIRECRAWL_API_KEY`).
- Instale o [Firecrawl SDK](https://github.com/mendableai/firecrawl) junto com o pacote `crewai[tools]`:
```shell
pip install firecrawl-py 'crewai[tools]'
```
## Exemplo
Utilize o FirecrawlSearchTool da seguinte forma para permitir que seu agente carregue sites:
```python Code
from crewai_tools import FirecrawlSearchTool
tool = FirecrawlSearchTool(query='what is firecrawl?')
```
## Argumentos
- `api_key`: Opcional. Especifica a chave de API do Firecrawl. O padrão é a variável de ambiente `FIRECRAWL_API_KEY`.
- `query`: A string da consulta de busca a ser utilizada na pesquisa.
- `page_options`: Opcional. Opções para formatação dos resultados.
- `onlyMainContent`: Opcional. Retorna somente o conteúdo principal da página, excluindo cabeçalhos, navegações, rodapés, etc.
- `includeHtml`: Opcional. Inclui o conteúdo HTML bruto da página. Vai gerar uma chave html na resposta.
- `fetchPageContent`: Opcional. Busca o conteúdo completo da página.
- `search_options`: Opcional. Opções para controle do comportamento de rastreamento.
- `limit`: Opcional. Número máximo de páginas a rastrear.

View File

@@ -0,0 +1,86 @@
---
title: Hyperbrowser Load Tool
description: O `HyperbrowserLoadTool` permite realizar web scraping e crawling utilizando o Hyperbrowser.
icon: globe
---
# `HyperbrowserLoadTool`
## Descrição
O `HyperbrowserLoadTool` permite realizar web scraping e crawling utilizando o [Hyperbrowser](https://hyperbrowser.ai), uma plataforma para executar e escalar browsers headless. Essa ferramenta possibilita extrair dados de uma única página ou rastrear um site inteiro, retornando o conteúdo em markdown ou HTML corretamente formatado.
Principais Características:
- Escalabilidade Instantânea Inicie centenas de sessões de browser em segundos sem se preocupar com infraestrutura
- Integração Simples Funciona perfeitamente com ferramentas populares como Puppeteer e Playwright
- APIs Poderosas APIs fáceis de usar para scraping/crawling de qualquer site
- Supera Medidas Anti-Bot Inclui modo stealth, bloqueio de anúncios, resolução automática de CAPTCHA e proxies rotativos
## Instalação
Para utilizar esta ferramenta, você precisa instalar o SDK do Hyperbrowser:
```shell
uv add hyperbrowser
```
## Passos para Começar
Para usar efetivamente o `HyperbrowserLoadTool`, siga estes passos:
1. **Cadastre-se**: Vá até o [Hyperbrowser](https://app.hyperbrowser.ai/) para criar uma conta e gerar uma chave de API.
2. **Chave de API**: Defina a variável de ambiente `HYPERBROWSER_API_KEY` ou passe-a diretamente no construtor da ferramenta.
3. **Instale o SDK**: Instale o SDK do Hyperbrowser usando o comando acima.
## Exemplo
O exemplo a seguir demonstra como inicializar a ferramenta e utilizá-la para extrair dados de um site:
```python Code
from crewai_tools import HyperbrowserLoadTool
from crewai import Agent
# Initialize the tool with your API key
tool = HyperbrowserLoadTool(api_key="your_api_key") # Or use environment variable
# Define an agent that uses the tool
@agent
def web_researcher(self) -> Agent:
'''
This agent uses the HyperbrowserLoadTool to scrape websites
and extract information.
'''
return Agent(
config=self.agents_config["web_researcher"],
tools=[tool]
)
```
## Parâmetros
O `HyperbrowserLoadTool` aceita os seguintes parâmetros:
### Parâmetros do Construtor
- **api_key**: Opcional. Sua chave de API do Hyperbrowser. Se não fornecida, será lida da variável de ambiente `HYPERBROWSER_API_KEY`.
### Parâmetros de Execução
- **url**: Obrigatório. A URL do site a ser extraído ou rastreado.
- **operation**: Opcional. A operação a ser realizada no site. Pode ser 'scrape' ou 'crawl'. O padrão é 'scrape'.
- **params**: Opcional. Parâmetros adicionais para a operação de scraping ou crawling.
## Parâmetros Suportados
Para informações detalhadas sobre todos os parâmetros suportados, acesse:
- [Parâmetros de Scrape](https://docs.hyperbrowser.ai/reference/sdks/python/scrape#start-scrape-job-and-wait)
- [Parâmetros de Crawl](https://docs.hyperbrowser.ai/reference/sdks/python/crawl#start-crawl-job-and-wait)
## Formato de Retorno
A ferramenta retorna o conteúdo nos seguintes formatos:
- Para operações **scrape**: O conteúdo da página no formato markdown ou HTML.
- Para operações **crawl**: O conteúdo de cada página separado por divisores, incluindo a URL de cada página.
## Conclusão
O `HyperbrowserLoadTool` oferece uma maneira poderosa de realizar scraping e crawling em sites, lidando com cenários complexos como medidas anti-bot, CAPTCHAs e muito mais. Aproveitando a plataforma do Hyperbrowser, essa ferramenta permite que agentes acessem e extraiam conteúdo da web de forma eficiente.

View File

@@ -0,0 +1,107 @@
---
title: "Visão Geral"
description: "Extraia dados de websites e automatize interações com o navegador utilizando poderosas ferramentas de scraping"
icon: "face-smile"
---
Essas ferramentas permitem que seus agentes interajam com a web, extraiam dados de websites e automatizem tarefas baseadas em navegador. De raspagem simples a automação complexa de navegador, essas ferramentas cobrem todas as suas necessidades de interação com a web.
## **Ferramentas Disponíveis**
<CardGroup cols={2}>
<Card title="Ferramenta de Scrape de Website" icon="globe" href="/pt-BR/tools/web-scraping/scrapewebsitetool">
Ferramenta de raspagem de uso geral para extrair conteúdo de qualquer site.
</Card>
<Card title="Ferramenta de Scrape de Elemento" icon="crosshairs" href="/pt-BR/tools/web-scraping/scrapeelementfromwebsitetool">
Extraia elementos específicos de páginas web com capacidades de raspagem precisa.
</Card>
<Card title="Ferramenta Firecrawl Crawl" icon="spider" href="/pt-BR/tools/web-scraping/firecrawlcrawlwebsitetool">
Rastreie sites inteiros de forma sistemática com o poderoso mecanismo do Firecrawl.
</Card>
<Card title="Ferramenta Firecrawl Scrape" icon="fire" href="/pt-BR/tools/web-scraping/firecrawlscrapewebsitetool">
Raspagem web de alta performance com as capacidades avançadas do Firecrawl.
</Card>
<Card title="Ferramenta Firecrawl Search" icon="magnifying-glass" href="/pt-BR/tools/web-scraping/firecrawlsearchtool">
Pesquise e extraia conteúdos específicos utilizando os recursos de busca do Firecrawl.
</Card>
<Card title="Ferramenta Selenium Scraping" icon="robot" href="/pt-BR/tools/web-scraping/seleniumscrapingtool">
Automação de navegador e scraping com as capacidades do Selenium WebDriver.
</Card>
<Card title="Ferramenta ScrapFly" icon="plane" href="/pt-BR/tools/web-scraping/scrapflyscrapetool">
Raspagem profissional de web com o serviço premium do ScrapFly.
</Card>
<Card title="Ferramenta ScrapGraph" icon="network-wired" href="/pt-BR/tools/web-scraping/scrapegraphscrapetool">
Raspagem baseada em grafos para relacionamentos de dados complexos.
</Card>
<Card title="Ferramenta Spider" icon="spider" href="/pt-BR/tools/web-scraping/spidertool">
Rastreio abrangente de sites e capacidades de extração de dados.
</Card>
<Card title="Ferramenta BrowserBase" icon="browser" href="/pt-BR/tools/web-scraping/browserbaseloadtool">
Automação de navegador baseada em nuvem com a infraestrutura do BrowserBase.
</Card>
<Card title="Ferramenta HyperBrowser" icon="window-maximize" href="/pt-BR/tools/web-scraping/hyperbrowserloadtool">
Interações rápidas com o navegador através do engine otimizado do HyperBrowser.
</Card>
<Card title="Ferramenta Stagehand" icon="hand" href="/pt-BR/tools/web-scraping/stagehandtool">
Automação inteligente de navegador com comandos em linguagem natural.
</Card>
<Card title="Ferramenta Oxylabs Scraper" icon="globe" href="/pt-BR/tools/web-scraping/oxylabsscraperstool">
Acesse dados web em escala com o Oxylabs.
</Card>
</CardGroup>
## **Casos de Uso Comuns**
- **Extração de Dados**: Raspagem de informações de produtos, preços e avaliações
- **Monitoramento de Conteúdo**: Acompanhe mudanças em sites e fontes de notícias
- **Geração de Leads**: Extraia informações de contato e dados de empresas
- **Pesquisa de Mercado**: Coleta de inteligência competitiva e dados de mercado
- **Testes & QA**: Automatize fluxos de teste e validação em navegadores
- **Mídias Sociais**: Extraia posts, comentários e análises de redes sociais
## **Exemplo de Início Rápido**
```python
from crewai_tools import ScrapeWebsiteTool, FirecrawlScrapeWebsiteTool, SeleniumScrapingTool
# Create scraping tools
simple_scraper = ScrapeWebsiteTool()
advanced_scraper = FirecrawlScrapeWebsiteTool()
browser_automation = SeleniumScrapingTool()
# Add to your agent
agent = Agent(
role="Web Research Specialist",
tools=[simple_scraper, advanced_scraper, browser_automation],
goal="Extract and analyze web data efficiently"
)
```
## **Boas Práticas de Scraping**
- **Respeite o robots.txt**: Sempre verifique e siga as políticas de scraping do website
- **Controle de Taxa (Rate Limiting)**: Implemente atrasos entre as requisições para evitar sobrecarregar servidores
- **User Agents**: Use strings de user agent apropriadas para identificar o seu bot
- **Conformidade Legal**: Certifique-se de que suas atividades de scraping estejam em conformidade com os termos de serviço
- **Tratamento de Erros**: Implemente um tratamento de erros robusto para problemas de rede e requisições bloqueadas
- **Qualidade dos Dados**: Valide e limpe os dados extraídos antes de processar
## **Guia de Seleção de Ferramentas**
- **Tarefas Simples**: Use `ScrapeWebsiteTool` para extração básica de conteúdo
- **Sites Dinâmicos com JavaScript**: Use `SeleniumScrapingTool` para conteúdo dinâmico
- **Escala & Performance**: Use `FirecrawlScrapeWebsiteTool` para scraping em grande volume
- **Infraestrutura em Nuvem**: Use `BrowserBaseLoadTool` para automação de navegador escalável
- **Fluxos Complexos**: Use `StagehandTool` para interações inteligentes com o navegador

View File

@@ -0,0 +1,235 @@
---
title: Oxylabs Scrapers
description: >
Os Scrapers da Oxylabs permitem acessar facilmente informações de fontes específicas. Veja abaixo a lista de fontes disponíveis:
- `Amazon Product`
- `Amazon Search`
- `Google Seach`
- `Universal`
icon: globe
---
## Instalação
Obtenha as credenciais criando uma conta na Oxylabs [aqui](https://oxylabs.io).
```shell
pip install 'crewai[tools]' oxylabs
```
Confira a [Documentação da Oxylabs](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/targets) para mais informações sobre os parâmetros da API.
# `OxylabsAmazonProductScraperTool`
### Exemplo
```python
from crewai_tools import OxylabsAmazonProductScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsAmazonProductScraperTool()
result = tool.run(query="AAAAABBBBCC")
print(result)
```
### Parâmetros
- `query` - código ASIN de 10 caracteres.
- `domain` - domínio de localização da Amazon.
- `geo_location` - local de entrega (_Deliver to_).
- `user_agent_type` - tipo de dispositivo e navegador.
- `render` - ativa o renderizador JavaScript ao definir como `html`.
- `callback_url` - URL do seu endpoint de callback.
- `context` - Configurações avançadas adicionais e controles para requisitos especializados.
- `parse` - retorna os dados já processados quando definido como true.
- `parsing_instructions` - defina sua própria lógica de parsing e transformação de dados que será executada no resultado de scraping HTML.
### Exemplo avançado
```python
from crewai_tools import OxylabsAmazonProductScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsAmazonProductScraperTool(
config={
"domain": "com",
"parse": True,
"context": [
{
"key": "autoselect_variant",
"value": True
}
]
}
)
result = tool.run(query="AAAAABBBBCC")
print(result)
```
# `OxylabsAmazonSearchScraperTool`
### Exemplo
```python
from crewai_tools import OxylabsAmazonSearchScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsAmazonSearchScraperTool()
result = tool.run(query="headsets")
print(result)
```
### Parâmetros
- `query` - termo de busca da Amazon.
- `domain` - Domínio de localização para Bestbuy.
- `start_page` - número da página inicial.
- `pages` - quantidade de páginas a ser recuperada.
- `geo_location` - local de entrega (_Deliver to_).
- `user_agent_type` - tipo de dispositivo e navegador.
- `render` - ativa o renderizador JavaScript ao definir como `html`.
- `callback_url` - URL do seu endpoint de callback.
- `context` - Configurações avançadas adicionais e controles para requisitos especializados.
- `parse` - retorna os dados já processados quando definido como true.
- `parsing_instructions` - defina sua própria lógica de parsing e transformação de dados que será executada no resultado de scraping HTML.
### Exemplo avançado
```python
from crewai_tools import OxylabsAmazonSearchScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsAmazonSearchScraperTool(
config={
"domain": 'nl',
"start_page": 2,
"pages": 2,
"parse": True,
"context": [
{'key': 'category_id', 'value': 16391693031}
],
}
)
result = tool.run(query='nirvana tshirt')
print(result)
```
# `OxylabsGoogleSearchScraperTool`
### Exemplo
```python
from crewai_tools import OxylabsGoogleSearchScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsGoogleSearchScraperTool()
result = tool.run(query="iPhone 16")
print(result)
```
### Parâmetros
- `query` - palavra-chave de busca.
- `domain` - domínio de localização do Google.
- `start_page` - número da página inicial.
- `pages` - número de páginas a ser recuperado.
- `limit` - quantidade de resultados a ser recuperada em cada página.
- `locale` - valor do header `Accept-Language`, que altera o idioma da interface da página de pesquisa do Google.
- `geo_location` - a localização geográfica para a qual o resultado deve ser adaptado. Usar este parâmetro corretamente é extremamente importante para obter os dados corretos.
- `user_agent_type` - tipo de dispositivo e navegador.
- `render` - ativa o renderizador JavaScript ao definir como `html`.
- `callback_url` - URL do seu endpoint de callback.
- `context` - Configurações avançadas adicionais e controles para requisitos especializados.
- `parse` - retorna os dados já processados quando definido como true.
- `parsing_instructions` - defina sua própria lógica de parsing e transformação de dados que será executada no resultado de scraping HTML.
### Exemplo avançado
```python
from crewai_tools import OxylabsGoogleSearchScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsGoogleSearchScraperTool(
config={
"parse": True,
"geo_location": "Paris, France",
"user_agent_type": "tablet",
}
)
result = tool.run(query="iPhone 16")
print(result)
```
# `OxylabsUniversalScraperTool`
### Exemplo
```python
from crewai_tools import OxylabsUniversalScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsUniversalScraperTool()
result = tool.run(url="https://ip.oxylabs.io")
print(result)
```
### Parâmetros
- `url` - URL do site a ser raspada.
- `user_agent_type` - tipo de dispositivo e navegador.
- `geo_location` - define a geolocalização do proxy para coletar os dados.
- `render` - ativa o renderizador JavaScript ao definir como `html`.
- `callback_url` - URL do seu endpoint de callback.
- `context` - Configurações avançadas adicionais e controles para requisitos especializados.
- `parse` - retorna os dados já processados quando definido como `true`, desde que exista um parser dedicado para o tipo de página da URL fornecida.
- `parsing_instructions` - defina sua própria lógica de parsing e transformação de dados que será executada no resultado de scraping HTML.
### Exemplo avançado
```python
from crewai_tools import OxylabsUniversalScraperTool
# certifique-se de que as variáveis OXYLABS_USERNAME e OXYLABS_PASSWORD estejam definidas
tool = OxylabsUniversalScraperTool(
config={
"render": "html",
"user_agent_type": "mobile",
"context": [
{"key": "force_headers", "value": True},
{"key": "force_cookies", "value": True},
{
"key": "headers",
"value": {
"Custom-Header-Name": "custom header content",
},
},
{
"key": "cookies",
"value": [
{"key": "NID", "value": "1234567890"},
{"key": "1P JAR", "value": "0987654321"},
],
},
{"key": "http_method", "value": "get"},
{"key": "follow_redirects", "value": True},
{"key": "successful_status_codes", "value": [808, 909]},
],
}
)
result = tool.run(url="https://ip.oxylabs.io")
print(result)
```

View File

@@ -0,0 +1,139 @@
---
title: Ferramenta de Extração de Elementos de Website
description: A `ScrapeElementFromWebsiteTool` permite que agentes CrewAI extraiam elementos específicos de websites usando seletores CSS.
icon: code
---
# `ScrapeElementFromWebsiteTool`
## Descrição
A `ScrapeElementFromWebsiteTool` foi projetada para extrair elementos específicos de websites utilizando seletores CSS. Esta ferramenta permite que agentes CrewAI capturem conteúdos direcionados de páginas web, tornando-se útil para tarefas de extração de dados em que apenas partes específicas de uma página são necessárias.
## Instalação
Para utilizar esta ferramenta, você precisa instalar as dependências necessárias:
```shell
uv add requests beautifulsoup4
```
## Passos para Começar
Para usar a `ScrapeElementFromWebsiteTool` de maneira eficaz, siga estes passos:
1. **Instale as Dependências**: Instale os pacotes necessários com o comando acima.
2. **Identifique os Seletores CSS**: Determine os seletores CSS dos elementos que deseja extrair do site.
3. **Inicialize a Ferramenta**: Crie uma instância da ferramenta com os parâmetros necessários.
## Exemplo
O exemplo abaixo demonstra como usar a `ScrapeElementFromWebsiteTool` para extrair elementos específicos de um website:
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import ScrapeElementFromWebsiteTool
# Inicie a ferramenta
scrape_tool = ScrapeElementFromWebsiteTool()
# Defina um agente que utilizará a ferramenta
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extrair informações específicas de websites",
backstory="Um especialista em web scraping capaz de capturar conteúdos direcionados de páginas web.",
tools=[scrape_tool],
verbose=True,
)
# Exemplo de tarefa para extrair manchetes de um site de notícias
scrape_task = Task(
description="Extraia as principais manchetes da página inicial da CNN. Use o seletor CSS '.headline' para atingir os elementos de manchete.",
expected_output="Uma lista das principais manchetes da CNN.",
agent=web_scraper_agent,
)
# Crie e execute o crew
crew = Crew(agents=[web_scraper_agent], tasks=[scrape_task])
result = crew.kickoff()
```
Você também pode inicializar a ferramenta com parâmetros pré-definidos:
```python Code
# Inicialize a ferramenta com parâmetros pré-definidos
scrape_tool = ScrapeElementFromWebsiteTool(
website_url="https://www.example.com",
css_element=".main-content"
)
```
## Parâmetros
A `ScrapeElementFromWebsiteTool` aceita os seguintes parâmetros durante a inicialização:
- **website_url**: Opcional. A URL do website a ser extraído. Se fornecido na inicialização, o agente não precisará especificá-lo ao utilizar a ferramenta.
- **css_element**: Opcional. O seletor CSS para os elementos a serem extraídos. Se fornecido na inicialização, o agente não precisará especificá-lo ao utilizar a ferramenta.
- **cookies**: Opcional. Um dicionário contendo cookies a serem enviados com a requisição. Isso pode ser útil para sites que requerem autenticação.
## Uso
Ao utilizar a `ScrapeElementFromWebsiteTool` com um agente, o agente precisará fornecer os seguintes parâmetros (a menos que já tenham sido especificados na inicialização):
- **website_url**: A URL do website a ser extraído.
- **css_element**: O seletor CSS dos elementos a serem extraídos.
A ferramenta retornará o conteúdo de texto de todos os elementos que correspondam ao seletor CSS, separados por quebras de linha.
```python Code
# Exemplo de uso da ferramenta com um agente
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extrair elementos específicos de websites",
backstory="Um especialista em web scraping capaz de extrair conteúdo direcionado por meio de seletores CSS.",
tools=[scrape_tool],
verbose=True,
)
# Crie uma tarefa para o agente extrair elementos específicos
extract_task = Task(
description="""
Extraia todos os títulos de produtos da seção de produtos em destaque no example.com.
Use o seletor CSS '.product-title' para atingir os elementos de título.
""",
expected_output="Uma lista de títulos de produtos do site",
agent=web_scraper_agent,
)
# Execute a tarefa utilizando um crew
crew = Crew(agents=[web_scraper_agent], tasks=[extract_task])
result = crew.kickoff()
```
## Detalhes de Implementação
A `ScrapeElementFromWebsiteTool` utiliza a biblioteca `requests` para buscar a página web e `BeautifulSoup` para analisar o HTML e extrair os elementos especificados:
```python Code
class ScrapeElementFromWebsiteTool(BaseTool):
name: str = "Read a website content"
description: str = "A tool that can be used to read a website content."
# Implementation details...
def _run(self, **kwargs: Any) -> Any:
website_url = kwargs.get("website_url", self.website_url)
css_element = kwargs.get("css_element", self.css_element)
page = requests.get(
website_url,
headers=self.headers,
cookies=self.cookies if self.cookies else {},
)
parsed = BeautifulSoup(page.content, "html.parser")
elements = parsed.select(css_element)
return "\n".join([element.get_text() for element in elements])
```
## Conclusão
A `ScrapeElementFromWebsiteTool` oferece uma maneira poderosa de extrair elementos específicos de websites utilizando seletores CSS. Ao possibilitar que agentes direcionem apenas o conteúdo que necessitam, ela torna as tarefas de web scraping mais eficientes e objetivas. Esta ferramenta é particularmente útil para extração de dados, monitoramento de conteúdos e tarefas de pesquisa em que informações específicas precisam ser extraídas de páginas web.

View File

@@ -0,0 +1,196 @@
---
title: Ferramenta de Extração Scrapegraph
description: A `ScrapegraphScrapeTool` utiliza a API SmartScraper da Scrapegraph AI para extrair conteúdo de sites de forma inteligente.
icon: chart-area
---
# `ScrapegraphScrapeTool`
## Descrição
A `ScrapegraphScrapeTool` foi projetada para utilizar a API SmartScraper da Scrapegraph AI e extrair conteúdo de sites de maneira inteligente. Esta ferramenta oferece recursos avançados de web scraping com extração de conteúdo potencializada por IA, tornando-se ideal para coleta de dados direcionada e tarefas de análise de conteúdo. Diferente dos scrapers tradicionais, ela entende o contexto e a estrutura das páginas da web para extrair as informações mais relevantes, com base em instruções em linguagem natural.
## Instalação
Para utilizar esta ferramenta, é necessário instalar o cliente Python do Scrapegraph:
```shell
uv add scrapegraph-py
```
Você também precisa definir sua chave de API do Scrapegraph como uma variável de ambiente:
```shell
export SCRAPEGRAPH_API_KEY="your_api_key"
```
Você pode obter uma chave de API em [Scrapegraph AI](https://scrapegraphai.com).
## Passos para Começar
Para usar efetivamente a `ScrapegraphScrapeTool`, siga estes passos:
1. **Instale as dependências**: Instale o pacote necessário usando o comando acima.
2. **Configure a chave de API**: Defina sua chave de API do Scrapegraph como variável de ambiente ou forneça-a durante a inicialização.
3. **Inicialize a ferramenta**: Crie uma instância da ferramenta com os parâmetros necessários.
4. **Defina instruções de extração**: Crie prompts em linguagem natural para guiar a extração de conteúdos específicos.
## Exemplo
O exemplo a seguir demonstra como usar a `ScrapegraphScrapeTool` para extrair conteúdo de um site:
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import ScrapegraphScrapeTool
# Initialize the tool
scrape_tool = ScrapegraphScrapeTool(api_key="your_api_key")
# Define an agent that uses the tool
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract specific information from websites",
backstory="An expert in web scraping who can extract targeted content from web pages.",
tools=[scrape_tool],
verbose=True,
)
# Example task to extract product information from an e-commerce site
scrape_task = Task(
description="Extract product names, prices, and descriptions from the featured products section of example.com.",
expected_output="A structured list of product information including names, prices, and descriptions.",
agent=web_scraper_agent,
)
# Create and run the crew
crew = Crew(agents=[web_scraper_agent], tasks=[scrape_task])
result = crew.kickoff()
```
Você também pode inicializar a ferramenta com parâmetros pré-definidos:
```python Code
# Initialize the tool with predefined parameters
scrape_tool = ScrapegraphScrapeTool(
website_url="https://www.example.com",
user_prompt="Extract all product prices and descriptions",
api_key="your_api_key"
)
```
## Parâmetros
A `ScrapegraphScrapeTool` aceita os seguintes parâmetros durante a inicialização:
- **api_key**: Opcional. Sua chave de API do Scrapegraph. Se não for fornecida, será procurada a variável de ambiente `SCRAPEGRAPH_API_KEY`.
- **website_url**: Opcional. A URL do site a ser extraído. Se fornecida na inicialização, o agente não precisa especificá-la ao usar a ferramenta.
- **user_prompt**: Opcional. Instruções customizadas para extração de conteúdo. Se fornecida na inicialização, o agente não precisa especificá-la ao usar a ferramenta.
- **enable_logging**: Opcional. Define se o registro (logging) na Scrapegraph deve ser ativado. O padrão é `False`.
## Uso
Ao usar a `ScrapegraphScrapeTool` com um agente, será necessário fornecer os seguintes parâmetros (a menos que tenham sido especificados durante a inicialização):
- **website_url**: A URL do site a ser extraída.
- **user_prompt**: Opcional. Instruções customizadas para extração de conteúdo. O padrão é "Extract the main content of the webpage".
A ferramenta retornará o conteúdo extraído com base no prompt fornecido.
```python Code
# Example of using the tool with an agent
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract specific information from websites",
backstory="An expert in web scraping who can extract targeted content from web pages.",
tools=[scrape_tool],
verbose=True,
)
# Create a task for the agent to extract specific content
extract_task = Task(
description="Extract the main heading and summary from example.com",
expected_output="The main heading and summary from the website",
agent=web_scraper_agent,
)
# Run the task
crew = Crew(agents=[web_scraper_agent], tasks=[extract_task])
result = crew.kickoff()
```
## Tratamento de Erros
A `ScrapegraphScrapeTool` pode lançar as seguintes exceções:
- **ValueError**: Quando a chave da API está ausente ou o formato da URL é inválido.
- **RateLimitError**: Quando o limite de requisições da API é excedido.
- **RuntimeError**: Quando a operação de extração falha (problemas de rede, erros da API).
Recomenda-se instruir os agentes a lidarem com potenciais erros de forma apropriada:
```python Code
# Create a task that includes error handling instructions
robust_extract_task = Task(
description="""
Extract the main heading from example.com.
Be aware that you might encounter errors such as:
- Invalid URL format
- Missing API key
- Rate limit exceeded
- Network or API errors
If you encounter any errors, provide a clear explanation of what went wrong
and suggest possible solutions.
""",
expected_output="Either the extracted heading or a clear error explanation",
agent=web_scraper_agent,
)
```
## Limitações de Taxa
A API do Scrapegraph possui limites de requisição que variam conforme o seu plano de assinatura. Considere as seguintes boas práticas:
- Implemente atrasos apropriados entre requisições ao processar múltiplas URLs.
- Trate erros de limite de requisição de forma apropriada em sua aplicação.
- Verifique os limites do seu plano de API no painel do Scrapegraph.
## Detalhes de Implementação
A `ScrapegraphScrapeTool` utiliza o cliente Python do Scrapegraph para se comunicar com a API SmartScraper:
```python Code
class ScrapegraphScrapeTool(BaseTool):
"""
A tool that uses Scrapegraph AI to intelligently scrape website content.
"""
# Implementation details...
def _run(self, **kwargs: Any) -> Any:
website_url = kwargs.get("website_url", self.website_url)
user_prompt = (
kwargs.get("user_prompt", self.user_prompt)
or "Extract the main content of the webpage"
)
if not website_url:
raise ValueError("website_url is required")
# Validate URL format
self._validate_url(website_url)
try:
# Make the SmartScraper request
response = self._client.smartscraper(
website_url=website_url,
user_prompt=user_prompt,
)
return response
# Error handling...
```
## Conclusão
A `ScrapegraphScrapeTool` oferece uma maneira poderosa de extrair conteúdo de sites utilizando o entendimento do formato das páginas pela IA. Ao permitir que os agentes direcionem informações específicas por meio de prompts em linguagem natural, ela torna tarefas de web scraping mais eficientes e focadas. Esta ferramenta é especialmente útil para extração de dados, monitoramento de conteúdo e pesquisas em que informações específicas precisam ser extraídas de páginas web.

View File

@@ -0,0 +1,47 @@
---
title: Raspar Site
description: O `ScrapeWebsiteTool` foi desenvolvido para extrair e ler o conteúdo de um site especificado.
icon: magnifying-glass-location
---
# `ScrapeWebsiteTool`
<Note>
Ainda estamos trabalhando para melhorar as ferramentas, então pode haver comportamentos inesperados ou mudanças futuras.
</Note>
## Descrição
Uma ferramenta desenvolvida para extrair e ler o conteúdo de um site especificado. Ela é capaz de lidar com diversos tipos de páginas web fazendo requisições HTTP e analisando o conteúdo HTML recebido.
Esta ferramenta pode ser especialmente útil para tarefas de raspagem de dados, coleta de dados ou extração de informações específicas de sites.
## Instalação
Instale o pacote crewai_tools
```shell
pip install 'crewai[tools]'
```
## Exemplo
```python
from crewai_tools import ScrapeWebsiteTool
# Para permitir a raspagem de qualquer site encontrado durante a execução
tool = ScrapeWebsiteTool()
# Inicialize a ferramenta com a URL do site,
# assim o agente só poderá raspar o conteúdo do site especificado
tool = ScrapeWebsiteTool(website_url='https://www.example.com')
# Extraia o texto do site
text = tool.run()
print(text)
```
## Argumentos
| Argumento | Tipo | Descrição |
|:---------------|:---------|:-----------------------------------------------------------------------------------------------------------------------------------|
| **website_url** | `string` | **Obrigatório** URL do site para leitura do arquivo. Esta é a entrada principal da ferramenta, especificando de qual site o conteúdo deve ser raspado e lido. |

View File

@@ -0,0 +1,220 @@
---
title: Ferramenta de Raspagem de Sites Scrapfly
description: A `ScrapflyScrapeWebsiteTool` aproveita a API de web scraping da Scrapfly para extrair conteúdo de sites em diversos formatos.
icon: spider
---
# `ScrapflyScrapeWebsiteTool`
## Descrição
A `ScrapflyScrapeWebsiteTool` foi desenvolvida para aproveitar a API de web scraping da [Scrapfly](https://scrapfly.io/) para extrair conteúdo de sites. Esta ferramenta oferece recursos avançados de raspagem com suporte a navegador headless, proxies e recursos de bypass de anti-bot. Permite extrair dados de páginas web em vários formatos, incluindo HTML bruto, markdown e texto simples, sendo ideal para uma ampla variedade de tarefas de raspagem de sites.
## Instalação
Para utilizar esta ferramenta, é necessário instalar o Scrapfly SDK:
```shell
uv add scrapfly-sdk
```
Você também precisará obter uma chave de API da Scrapfly registrando-se em [scrapfly.io/register](https://www.scrapfly.io/register/).
## Passos para Começar
Para usar a `ScrapflyScrapeWebsiteTool` de forma eficaz, siga estas etapas:
1. **Instale as Dependências**: Instale o Scrapfly SDK usando o comando acima.
2. **Obtenha a Chave de API**: Cadastre-se na Scrapfly para obter sua chave de API.
3. **Inicialize a Ferramenta**: Crie uma instância da ferramenta com sua chave de API.
4. **Configure os Parâmetros de Raspagem**: Personalize os parâmetros de raspagem conforme suas necessidades.
## Exemplo
O exemplo a seguir demonstra como usar a `ScrapflyScrapeWebsiteTool` para extrair conteúdo de um site:
```python Code
from crewai import Agent, Task, Crew
from crewai_tools import ScrapflyScrapeWebsiteTool
# Initialize the tool
scrape_tool = ScrapflyScrapeWebsiteTool(api_key="your_scrapfly_api_key")
# Define an agent that uses the tool
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract information from websites",
backstory="An expert in web scraping who can extract content from any website.",
tools=[scrape_tool],
verbose=True,
)
# Example task to extract content from a website
scrape_task = Task(
description="Extract the main content from the product page at https://web-scraping.dev/products and summarize the available products.",
expected_output="A summary of the products available on the website.",
agent=web_scraper_agent,
)
# Create and run the crew
crew = Crew(agents=[web_scraper_agent], tasks=[scrape_task])
result = crew.kickoff()
```
Você também pode personalizar os parâmetros de raspagem:
```python Code
# Example with custom scraping parameters
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract information from websites with custom parameters",
backstory="An expert in web scraping who can extract content from any website.",
tools=[scrape_tool],
verbose=True,
)
# The agent will use the tool with parameters like:
# url="https://web-scraping.dev/products"
# scrape_format="markdown"
# ignore_scrape_failures=True
# scrape_config={
# "asp": True, # Bypass scraping blocking solutions, like Cloudflare
# "render_js": True, # Enable JavaScript rendering with a cloud headless browser
# "proxy_pool": "public_residential_pool", # Select a proxy pool
# "country": "us", # Select a proxy location
# "auto_scroll": True, # Auto scroll the page
# }
scrape_task = Task(
description="Extract the main content from the product page at https://web-scraping.dev/products using advanced scraping options including JavaScript rendering and proxy settings.",
expected_output="A detailed summary of the products with all available information.",
agent=web_scraper_agent,
)
```
## Parâmetros
A `ScrapflyScrapeWebsiteTool` aceita os seguintes parâmetros:
### Parâmetros de Inicialização
- **api_key**: Obrigatório. Sua chave de API da Scrapfly.
### Parâmetros de Execução
- **url**: Obrigatório. A URL do site a ser raspado.
- **scrape_format**: Opcional. O formato em que o conteúdo da página será extraído. As opções são "raw" (HTML), "markdown" ou "text". O padrão é "markdown".
- **scrape_config**: Opcional. Um dicionário contendo opções adicionais de configuração de raspagem da Scrapfly.
- **ignore_scrape_failures**: Opcional. Determina se as falhas de raspagem devem ser ignoradas. Se definido como `True`, a ferramenta irá retornar `None` ao invés de lançar uma exceção caso ocorra uma falha na raspagem.
## Opções de Configuração Scrapfly
O parâmetro `scrape_config` permite personalizar o comportamento da raspagem com as seguintes opções:
- **asp**: Ativa o bypass de proteção anti-scraping.
- **render_js**: Ativa a renderização de JavaScript com um navegador headless na nuvem.
- **proxy_pool**: Seleciona um pool de proxies (por exemplo, "public_residential_pool", "datacenter").
- **country**: Seleciona a localização do proxy (por exemplo, "us", "uk").
- **auto_scroll**: Rola automaticamente a página para carregar conteúdo lazy-loaded.
- **js**: Executa código JavaScript personalizado via o navegador headless.
Para uma lista completa de opções de configuração, consulte a [documentação da API Scrapfly](https://scrapfly.io/docs/scrape-api/getting-started).
## Uso
Ao usar a `ScrapflyScrapeWebsiteTool` com um agente, o agente deverá fornecer a URL do site a ser raspado e pode opcionalmente especificar o formato e opções adicionais de configuração:
```python Code
# Example of using the tool with an agent
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract information from websites",
backstory="An expert in web scraping who can extract content from any website.",
tools=[scrape_tool],
verbose=True,
)
# Create a task for the agent
scrape_task = Task(
description="Extract the main content from example.com in markdown format.",
expected_output="The main content of example.com in markdown format.",
agent=web_scraper_agent,
)
# Run the task
crew = Crew(agents=[web_scraper_agent], tasks=[scrape_task])
result = crew.kickoff()
```
Para um uso mais avançado com configurações personalizadas:
```python Code
# Create a task with more specific instructions
advanced_scrape_task = Task(
description="""
Extract content from example.com with the following requirements:
- Convert the content to plain text format
- Enable JavaScript rendering
- Use a US-based proxy
- Handle any scraping failures gracefully
""",
expected_output="The extracted content from example.com",
agent=web_scraper_agent,
)
```
## Tratamento de Erros
Por padrão, a `ScrapflyScrapeWebsiteTool` irá lançar uma exceção se a raspagem falhar. Os agentes podem ser instruídos a tratar falhas de forma mais flexível especificando o parâmetro `ignore_scrape_failures`:
```python Code
# Create a task that instructs the agent to handle errors
error_handling_task = Task(
description="""
Extract content from a potentially problematic website and make sure to handle any
scraping failures gracefully by setting ignore_scrape_failures to True.
""",
expected_output="Either the extracted content or a graceful error message",
agent=web_scraper_agent,
)
```
## Detalhes de Implementação
A `ScrapflyScrapeWebsiteTool` utiliza o Scrapfly SDK para interagir com a API Scrapfly:
```python Code
class ScrapflyScrapeWebsiteTool(BaseTool):
name: str = "Scrapfly web scraping API tool"
description: str = (
"Scrape a webpage url using Scrapfly and return its content as markdown or text"
)
# Implementation details...
def _run(
self,
url: str,
scrape_format: str = "markdown",
scrape_config: Optional[Dict[str, Any]] = None,
ignore_scrape_failures: Optional[bool] = None,
):
from scrapfly import ScrapeApiResponse, ScrapeConfig
scrape_config = scrape_config if scrape_config is not None else {}
try:
response: ScrapeApiResponse = self.scrapfly.scrape(
ScrapeConfig(url, format=scrape_format, **scrape_config)
)
return response.scrape_result["content"]
except Exception as e:
if ignore_scrape_failures:
logger.error(f"Error fetching data from {url}, exception: {e}")
return None
else:
raise e
```
## Conclusão
A `ScrapflyScrapeWebsiteTool` oferece uma forma poderosa de extrair conteúdo de sites usando as avançadas capacidades de web scraping da Scrapfly. Com recursos como suporte a navegador headless, proxies e bypass de anti-bot, ela consegue lidar com sites complexos e extrair conteúdo em diversos formatos. Esta ferramenta é especialmente útil em tarefas de extração de dados, monitoramento de conteúdo e pesquisa, onde a raspagem confiável de sites é necessária.

View File

@@ -0,0 +1,195 @@
---
title: Selenium Scraper
description: O `SeleniumScrapingTool` foi desenvolvido para extrair e ler o conteúdo de um site específico utilizando o Selenium.
icon: clipboard-user
---
# `SeleniumScrapingTool`
<Note>
Esta ferramenta está atualmente em desenvolvimento. Conforme aprimoramos suas capacidades, os usuários podem encontrar comportamentos inesperados.
Seu feedback é inestimável para que possamos melhorar.
</Note>
## Descrição
O `SeleniumScrapingTool` foi criado para tarefas de raspagem web de alta eficiência.
Permite a extração precisa de conteúdo de páginas web utilizando seletores CSS para direcionar elementos específicos.
Seu design atende a uma ampla gama de necessidades de scraping, oferecendo flexibilidade para trabalhar com qualquer URL de site fornecida.
## Instalação
Para utilizar esta ferramenta, é necessário instalar o pacote CrewAI tools e o Selenium:
```shell
pip install 'crewai[tools]'
uv add selenium webdriver-manager
```
Você também precisará ter o Chrome instalado em seu sistema, pois a ferramenta utiliza o Chrome WebDriver para automação do navegador.
## Exemplo
O exemplo a seguir demonstra como usar o `SeleniumScrapingTool` com um agente CrewAI:
```python Code
from crewai import Agent, Task, Crew, Process
from crewai_tools import SeleniumScrapingTool
# Inicializa a ferramenta
selenium_tool = SeleniumScrapingTool()
# Define um agente que utiliza a ferramenta
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract information from websites using Selenium",
backstory="An expert web scraper who can extract content from dynamic websites.",
tools=[selenium_tool],
verbose=True,
)
# Exemplo de tarefa para extrair conteúdo de um site
scrape_task = Task(
description="Extract the main content from the homepage of example.com. Use the CSS selector 'main' to target the main content area.",
expected_output="The main content from example.com's homepage.",
agent=web_scraper_agent,
)
# Cria e executa o crew
crew = Crew(
agents=[web_scraper_agent],
tasks=[scrape_task],
verbose=True,
process=Process.sequential,
)
result = crew.kickoff()
```
Você também pode inicializar a ferramenta com parâmetros predefinidos:
```python Code
# Inicializa a ferramenta com parâmetros predefinidos
selenium_tool = SeleniumScrapingTool(
website_url='https://example.com',
css_element='.main-content',
wait_time=5
)
# Define um agente que utiliza a ferramenta
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract information from websites using Selenium",
backstory="An expert web scraper who can extract content from dynamic websites.",
tools=[selenium_tool],
verbose=True,
)
```
## Parâmetros
O `SeleniumScrapingTool` aceita os seguintes parâmetros durante a inicialização:
- **website_url**: Opcional. A URL do site a ser raspado. Se fornecido durante a inicialização, o agente não precisará especificá-lo ao utilizar a ferramenta.
- **css_element**: Opcional. O seletor CSS dos elementos a serem extraídos. Se fornecido durante a inicialização, o agente não precisará especificá-lo ao utilizar a ferramenta.
- **cookie**: Opcional. Um dicionário contendo informações de cookies, útil para simular uma sessão logada e acessar conteúdo restrito.
- **wait_time**: Opcional. Especifica o atraso (em segundos) antes da raspagem, permitindo que o site e qualquer conteúdo dinâmico carreguem totalmente. O padrão é `3` segundos.
- **return_html**: Opcional. Indica se o conteúdo HTML deve ser retornado em vez do texto simples. O padrão é `False`.
Ao usar a ferramenta com um agente, o agente precisará fornecer os seguintes parâmetros (a menos que tenham sido especificados durante a inicialização):
- **website_url**: Obrigatório. A URL do site a ser raspado.
- **css_element**: Obrigatório. O seletor CSS dos elementos a serem extraídos.
## Exemplo de Integração com Agente
Aqui está um exemplo mais detalhado de como integrar o `SeleniumScrapingTool` com um agente CrewAI:
```python Code
from crewai import Agent, Task, Crew, Process
from crewai_tools import SeleniumScrapingTool
# Inicializa a ferramenta
selenium_tool = SeleniumScrapingTool()
# Define um agente que utiliza a ferramenta
web_scraper_agent = Agent(
role="Web Scraper",
goal="Extract and analyze information from dynamic websites",
backstory="""You are an expert web scraper who specializes in extracting
content from dynamic websites that require browser automation. You have
extensive knowledge of CSS selectors and can identify the right selectors
to target specific content on any website.""",
tools=[selenium_tool],
verbose=True,
)
# Cria uma tarefa para o agente
scrape_task = Task(
description="""
Extract the following information from the news website at {website_url}:
1. The headlines of all featured articles (CSS selector: '.headline')
2. The publication dates of these articles (CSS selector: '.pub-date')
3. The author names where available (CSS selector: '.author')
Compile this information into a structured format with each article's details grouped together.
""",
expected_output="A structured list of articles with their headlines, publication dates, and authors.",
agent=web_scraper_agent,
)
# Executa a tarefa
crew = Crew(
agents=[web_scraper_agent],
tasks=[scrape_task],
verbose=True,
process=Process.sequential,
)
result = crew.kickoff(inputs={"website_url": "https://news-example.com"})
```
## Detalhes de Implementação
O `SeleniumScrapingTool` utiliza o Selenium WebDriver para automatizar interações com o navegador:
```python Code
class SeleniumScrapingTool(BaseTool):
name: str = "Read a website content"
description: str = "A tool that can be used to read a website content."
args_schema: Type[BaseModel] = SeleniumScrapingToolSchema
def _run(self, **kwargs: Any) -> Any:
website_url = kwargs.get("website_url", self.website_url)
css_element = kwargs.get("css_element", self.css_element)
return_html = kwargs.get("return_html", self.return_html)
driver = self._create_driver(website_url, self.cookie, self.wait_time)
content = self._get_content(driver, css_element, return_html)
driver.close()
return "\n".join(content)
```
A ferramenta executa as seguintes etapas:
1. Cria uma instância do Chrome em modo headless
2. Navega até a URL especificada
3. Aguarda o tempo especificado para permitir o carregamento da página
4. Adiciona cookies se fornecidos
5. Extrai conteúdo baseado no seletor CSS
6. Retorna o conteúdo extraído como texto ou HTML
7. Encerra a instância do navegador
## Tratamento de Conteúdo Dinâmico
O `SeleniumScrapingTool` é especialmente útil para extrair sites com conteúdo dinâmico carregado via JavaScript. Usando uma instância real de navegador, ele pode:
1. Executar JavaScript na página
2. Aguardar o carregamento do conteúdo dinâmico
3. Interagir com elementos se necessário
4. Extrair conteúdo que não estaria disponível usando apenas requisições HTTP simples
Você pode ajustar o parâmetro `wait_time` para garantir que todo o conteúdo dinâmico tenha sido carregado antes da extração.
## Conclusão
O `SeleniumScrapingTool` fornece uma maneira poderosa de extrair conteúdo de sites utilizando automação de navegador. Ao permitir que agentes interajam com sites como um usuário real, ele facilita a raspagem de conteúdo dinâmico que seria difícil ou impossível de extrair utilizando métodos mais simples. Esta ferramenta é especialmente útil para pesquisas, coleta de dados e tarefas de monitoramento que envolvem aplicações web modernas com conteúdo renderizado por JavaScript.

View File

@@ -0,0 +1,91 @@
---
title: Spider Scraper
description: O `SpiderTool` foi projetado para extrair e ler o conteúdo de um site especificado usando o Spider.
icon: spider-web
---
# `SpiderTool`
## Descrição
[Spider](https://spider.cloud/?ref=crewai) é o [scraper](https://github.com/spider-rs/spider/blob/main/benches/BENCHMARKS.md#benchmark-results) e crawler de código aberto mais rápido que retorna dados prontos para LLM.
Ele converte qualquer site em HTML puro, markdown, metadados ou texto e permite que você faça crawling com ações personalizadas utilizando IA.
## Instalação
Para usar o `SpiderTool` você precisa baixar o [Spider SDK](https://pypi.org/project/spider-client/)
e também o SDK `crewai[tools]`:
```shell
pip install spider-client 'crewai[tools]'
```
## Exemplo
Este exemplo mostra como você pode usar o `SpiderTool` para permitir que seu agente faça scraping e crawling de websites.
Os dados retornados pela API do Spider já estão prontos para LLM, então não é necessário fazer nenhuma limpeza adicional.
```python Code
from crewai_tools import SpiderTool
def main():
spider_tool = SpiderTool()
searcher = Agent(
role="Web Research Expert",
goal="Find related information from specific URL's",
backstory="An expert web researcher that uses the web extremely well",
tools=[spider_tool],
verbose=True,
)
return_metadata = Task(
description="Scrape https://spider.cloud with a limit of 1 and enable metadata",
expected_output="Metadata and 10 word summary of spider.cloud",
agent=searcher
)
crew = Crew(
agents=[searcher],
tasks=[
return_metadata,
],
verbose=2
)
crew.kickoff()
if __name__ == "__main__":
main()
```
## Argumentos
| Argumento | Tipo | Descrição |
|:---------------------|:----------|:------------------------------------------------------------------------------------------------------------------------------------------------------|
| **api_key** | `string` | Especifica a chave da API do Spider. Se não for definida, procura por `SPIDER_API_KEY` nas variáveis de ambiente. |
| **params** | `object` | Parâmetros opcionais para a requisição. O padrão é `{"return_format": "markdown"}` para otimizar o conteúdo para LLMs. |
| **request** | `string` | Tipo de requisição a ser realizada (`http`, `chrome`, `smart`). `smart` tem como padrão HTTP, alterando para renderização JavaScript se necessário. |
| **limit** | `int` | Máximo de páginas a serem rastreadas por site. Defina como `0` ou omita para ilimitado. |
| **depth** | `int` | Profundidade máxima do crawl. Defina como `0` para sem limite. |
| **cache** | `bool` | Habilita cache HTTP para acelerar execuções repetidas. O padrão é `true`. |
| **budget** | `object` | Define limites baseados em caminho para páginas rastreadas, ex.: `{"*":1}` apenas para a página raiz. |
| **locale** | `string` | Localidade da requisição, ex.: `en-US`. |
| **cookies** | `string` | Cookies HTTP para a requisição. |
| **stealth** | `bool` | Habilita modo furtivo para requisições Chrome para evitar detecção. O padrão é `true`. |
| **headers** | `object` | Headers HTTP como um mapa de chave-valor para todas as requisições. |
| **metadata** | `bool` | Armazena metadados sobre as páginas e conteúdos, auxiliando interoperabilidade com IA. O padrão é `false`. |
| **viewport** | `object` | Define as dimensões de viewport do Chrome. O padrão é `800x600`. |
| **encoding** | `string` | Especifica o tipo de codificação, ex.: `UTF-8`, `SHIFT_JIS`. |
| **subdomains** | `bool` | Inclui subdomínios no crawl. O padrão é `false`. |
| **user_agent** | `string` | User agent HTTP personalizado. Padrão é um agente aleatório. |
| **store_data** | `bool` | Habilita o armazenamento dos dados para a requisição. Sobrescreve `storageless` quando definido. O padrão é `false`. |
| **gpt_config** | `object` | Permite à IA gerar ações de crawl, com encadeamento de etapas opcional via array para `"prompt"`. |
| **fingerprint** | `bool` | Habilita fingerprint avançado para o Chrome. |
| **storageless** | `bool` | Impede todo o armazenamento de dados, incluindo embeddings de IA. O padrão é `false`. |
| **readability** | `bool` | Pré-processa conteúdo para leitura via [Mozillas readability](https://github.com/mozilla/readability). Melhora o conteúdo para LLMs. |
| **return_format** | `string` | Formato para retorno dos dados: `markdown`, `raw`, `text`, `html2text`. Use `raw` para formato padrão da página. |
| **proxy_enabled** | `bool` | Habilita proxies de alta performance para evitar bloqueios em nível de rede. |
| **query_selector** | `string` | CSS query selector para extração de conteúdo a partir do markup. |
| **full_resources** | `bool` | Baixa todos os recursos vinculados ao site. |
| **request_timeout** | `int` | Timeout em segundos para as requisições (5-60). O padrão é `30`. |
| **run_in_background**| `bool` | Executa a requisição em segundo plano. Útil para armazenamento de dados e acionamento de crawls no dashboard. Não tem efeito se `storageless` estiver definido.

View File

@@ -0,0 +1,241 @@
---
title: Ferramenta Stagehand
description: Ferramenta de automação web que integra o Stagehand ao CrewAI para interação e automação em navegadores
icon: hand
---
# Visão Geral
A `StagehandTool` integra o framework [Stagehand](https://docs.stagehand.dev/get_started/introduction) com o CrewAI, permitindo que agentes interajam com sites e automatizem tarefas no navegador utilizando instruções em linguagem natural.
## Visão Geral
O Stagehand é um poderoso framework de automação de navegador criado pela Browserbase que permite aos agentes de IA:
- Navegar por sites
- Clicar em botões, links e outros elementos
- Preencher formulários
- Extrair dados de páginas web
- Observar e identificar elementos
- Realizar fluxos de trabalho complexos
A StagehandTool encapsula o SDK Python do Stagehand para fornecer aos agentes do CrewAI capacidades de controle do navegador através de três primitivas principais:
1. **Act**: Executar ações como clicar, digitar ou navegar
2. **Extract**: Extrair dados estruturados de páginas web
3. **Observe**: Identificar e analisar elementos na página
## Pré-requisitos
Antes de utilizar esta ferramenta, certifique-se de que você possui:
1. Uma conta [Browserbase](https://www.browserbase.com/) com chave API e ID de projeto
2. Uma chave API para um LLM (OpenAI ou Anthropic Claude)
3. O SDK Python do Stagehand instalado
Instale a dependência necessária:
```bash
pip install stagehand-py
```
## Uso
### Implementação Básica
A StagehandTool pode ser implementada de duas maneiras:
#### 1. Usando Context Manager (Recomendado)
<Tip>
A abordagem de context manager é recomendada, pois garante o encerramento adequado dos recursos mesmo em caso de exceções.
</Tip>
```python
from crewai import Agent, Task, Crew
from crewai_tools import StagehandTool
from stagehand.schemas import AvailableModel
# Initialize the tool with your API keys using a context manager
with StagehandTool(
api_key="your-browserbase-api-key",
project_id="your-browserbase-project-id",
model_api_key="your-llm-api-key", # OpenAI or Anthropic API key
model_name=AvailableModel.CLAUDE_3_7_SONNET_LATEST, # Optional: specify which model to use
) as stagehand_tool:
# Create an agent with the tool
researcher = Agent(
role="Web Researcher",
goal="Find and summarize information from websites",
backstory="I'm an expert at finding information online.",
verbose=True,
tools=[stagehand_tool],
)
# Create a task that uses the tool
research_task = Task(
description="Go to https://www.example.com and tell me what you see on the homepage.",
agent=researcher,
)
# Run the crew
crew = Crew(
agents=[researcher],
tasks=[research_task],
verbose=True,
)
result = crew.kickoff()
print(result)
```
#### 2. Gerenciamento Manual de Recursos
```python
from crewai import Agent, Task, Crew
from crewai_tools import StagehandTool
from stagehand.schemas import AvailableModel
# Initialize the tool with your API keys
stagehand_tool = StagehandTool(
api_key="your-browserbase-api-key",
project_id="your-browserbase-project-id",
model_api_key="your-llm-api-key",
model_name=AvailableModel.CLAUDE_3_7_SONNET_LATEST,
)
try:
# Create an agent with the tool
researcher = Agent(
role="Web Researcher",
goal="Find and summarize information from websites",
backstory="I'm an expert at finding information online.",
verbose=True,
tools=[stagehand_tool],
)
# Create a task that uses the tool
research_task = Task(
description="Go to https://www.example.com and tell me what you see on the homepage.",
agent=researcher,
)
# Run the crew
crew = Crew(
agents=[researcher],
tasks=[research_task],
verbose=True,
)
result = crew.kickoff()
print(result)
finally:
# Explicitly clean up resources
stagehand_tool.close()
```
## Tipos de Comando
A StagehandTool suporta três tipos diferentes de comando para tarefas específicas de automação web:
### 1. Comando Act
O tipo de comando `act` (padrão) permite interações em páginas web como clicar em botões, preencher formulários e navegar.
```python
# Perform an action (default behavior)
result = stagehand_tool.run(
instruction="Click the login button",
url="https://example.com",
command_type="act" # Default, so can be omitted
)
# Fill out a form
result = stagehand_tool.run(
instruction="Fill the contact form with name 'John Doe', email 'john@example.com', and message 'Hello world'",
url="https://example.com/contact"
)
```
### 2. Comando Extract
O tipo de comando `extract` recupera dados estruturados de páginas web.
```python
# Extract all product information
result = stagehand_tool.run(
instruction="Extract all product names, prices, and descriptions",
url="https://example.com/products",
command_type="extract"
)
# Extract specific information with a selector
result = stagehand_tool.run(
instruction="Extract the main article title and content",
url="https://example.com/blog/article",
command_type="extract",
selector=".article-container" # Optional CSS selector
)
```
### 3. Comando Observe
O tipo de comando `observe` identifica e analisa elementos da página web.
```python
# Find interactive elements
result = stagehand_tool.run(
instruction="Find all interactive elements in the navigation menu",
url="https://example.com",
command_type="observe"
)
# Identify form fields
result = stagehand_tool.run(
instruction="Identify all the input fields in the registration form",
url="https://example.com/register",
command_type="observe",
selector="#registration-form"
)
```
## Opções de Configuração
Personalize o comportamento da StagehandTool com estes parâmetros:
```python
stagehand_tool = StagehandTool(
api_key="your-browserbase-api-key",
project_id="your-browserbase-project-id",
model_api_key="your-llm-api-key",
model_name=AvailableModel.CLAUDE_3_7_SONNET_LATEST,
dom_settle_timeout_ms=5000, # Wait longer for DOM to settle
headless=True, # Run browser in headless mode
self_heal=True, # Attempt to recover from errors
wait_for_captcha_solves=True, # Wait for CAPTCHA solving
verbose=1, # Control logging verbosity (0-3)
)
```
## Boas Práticas
1. **Seja Específico**: Forneça instruções detalhadas para melhores resultados
2. **Escolha o Tipo de Comando Apropriado**: Selecione o comando correto para sua tarefa
3. **Use Selectors**: Utilize seletores CSS para aumentar a precisão
4. **Divida Tarefas Complexas**: Separe fluxos de trabalho complexos em múltiplas chamadas da ferramenta
5. **Implemente Tratamento de Erros**: Adicione tratamento de erros para possíveis problemas
## Solução de Problemas
Problemas comuns e soluções:
- **Problemas de Sessão**: Verifique as chaves de API tanto da Browserbase quanto do provedor de LLM
- **Elemento Não Encontrado**: Aumente o `dom_settle_timeout_ms` para páginas mais lentas
- **Falhas em Ações**: Use o `observe` para identificar corretamente os elementos antes
- **Dados Incompletos**: Refine as instruções ou forneça seletores específicos
## Recursos Adicionais
Para dúvidas sobre a integração com o CrewAI:
- Participe da comunidade [Slack do Stagehand](https://stagehand.dev/slack)
- Abra uma issue no [repositório Stagehand](https://github.com/browserbase/stagehand)
- Visite a [documentação do Stagehand](https://docs.stagehand.dev/)