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 aiohttp para Web Scraping
Sep23, 2024

Como usar aiohttp para Web Scraping

Aloísio Vítor

Aloísio Vítor

Image Processing Expert

O que é aiohttp?

aiohttp é um poderoso framework cliente/servidor HTTP assíncrono para Python. Ele utiliza a biblioteca asyncio do Python para habilitar operações de rede concorrentes, tornando-o altamente eficiente para tarefas como web scraping, desenvolvimento web e quaisquer operações ligadas à rede.

Recursos:

  • E/S assíncrona: Construído sobre o asyncio para operações de rede não bloqueantes.
  • Suporte a cliente e servidor: Fornece implementações de cliente e servidor HTTP.
  • Suporte a WebSockets: Suporte nativo para protocolos WebSockets.
  • Alto desempenho: Tratamento eficiente de múltiplas conexões simultaneamente.
  • Extensibilidade: Suporta middlewares, sinais e plugins para personalização avançada.

Pré-requisitos

Antes de começar a usar o aiohttp, certifique-se de que você tenha:

  • Python 3.7 ou superior
  • pip para instalar pacotes Python

Começando com aiohttp

Instalação

Instale o aiohttp usando o pip:

bash Copy
pip install aiohttp

Exemplo básico: Fazendo uma solicitação GET

Aqui está como executar uma solicitação GET simples usando aiohttp:

python Copy
import asyncio
import aiohttp

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            status = response.status
            text = await response.text()
            print(f'Código de Status: {status}')
            print('Corpo da Resposta:', text)

if __name__ == '__main__':
    asyncio.run(fetch('https://httpbin.org/get'))

Exemplo de Web Scraping: Raspagem de Citações de um Site

Vamos raspar o site Quotes to Scrape para extrair citações e seus autores:

python Copy
import asyncio
import aiohttp
from bs4 import BeautifulSoup

async def fetch_content(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

async def scrape_quotes():
    url = 'http://quotes.toscrape.com/'
    html = await fetch_content(url)
    soup = BeautifulSoup(html, 'html.parser')
    quotes = soup.find_all('div', class_='quote')
    for quote in quotes:
        text = quote.find('span', class_='text').get_text(strip=True)
        author = quote.find('small', class_='author').get_text(strip=True)
        print(f'{text} — {author}')

if __name__ == '__main__':
    asyncio.run(scrape_quotes())

Saída:

Copy
“O mundo como o criamos é um processo de nosso pensamento. Ele não pode ser mudado sem mudar nosso pensamento.” — Albert Einstein
“São nossas escolhas, Harry, que mostram o que realmente somos, muito mais do que nossas habilidades.” — J.K. Rowling
... (citações adicionais)

Lidando com captchas com CapSolver e aiohttp

Nesta seção, exploraremos como integrar o CapSolver com o aiohttp para contornar captchas. O CapSolver é um serviço externo que ajuda a resolver vários tipos de captchas, incluindo ReCaptcha v2, v3

Demonstraremos como resolver o ReCaptcha V2 usando o CapSolver e, em seguida, acessar uma página que requer a resolução de captcha.

Exemplo: Resolvendo ReCaptcha V2 com CapSolver e aiohttp

Primeiro, instale o pacote CapSolver:

bash Copy
pip install capsolver

Agora, aqui está como você pode resolver um ReCaptcha V2 e usar a solução em sua solicitação:

python Copy
import asyncio
import os
import aiohttp
import capsolver

# Defina sua chave de API CapSolver
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Sua Chave de API CapSolver")
PAGE_URL = os.getenv("PAGE_URL", "https://example.com")  # URL da página com captcha
SITE_KEY = os.getenv("SITE_KEY", "SITE_KEY")             # Chave do site do captcha

async def solve_recaptcha_v2():
    solution = capsolver.solve({
        "type": "ReCaptchaV2TaskProxyless",
        "websiteURL": PAGE_URL,
        "websiteKey": SITE_KEY
    })
    return solution['solution']['gRecaptchaResponse']

async def access_protected_page():
    captcha_response = await solve_recaptcha_v2()
    print("Captcha Resolvido!")

    async with aiohttp.ClientSession() as session:
        data = {
            'g-recaptcha-response': captcha_response,
            # Inclua outros dados do formulário se necessário pelo site
        }
        async with session.post(PAGE_URL, data=data) as response:
            content = await response.text()
            print('Conteúdo da Página:', content)

if __name__ == '__main__':
    asyncio.run(access_protected_page())

Observação: Substitua PAGE_URL pela URL da página que contém o captcha e SITE_KEY pela chave do site do captcha. A chave do site geralmente é encontrada no código-fonte HTML da página dentro do widget do captcha.

Lidando com Proxies com aiohttp

Para rotear suas solicitações através de um proxy, especifique o parâmetro proxy:

python Copy
import asyncio
import aiohttp

async def fetch(url, proxy):
    async with aiohttp.ClientSession() as session:
        async with session.get(url, proxy=proxy) as response:
            return await response.text()

async def main():
    proxy = 'http://username:password@proxyserver:port'
    url = 'https://httpbin.org/ip'
    content = await fetch(url, proxy)
    print('Corpo da Resposta:', content)

if __name__ == '__main__':
    asyncio.run(main())

Lidando com Cookies com aiohttp

Você pode gerenciar cookies usando CookieJar:

python Copy
import asyncio
import aiohttp

async def main():
    jar = aiohttp.CookieJar()
    async with aiohttp.ClientSession(cookie_jar=jar) as session:
        await session.get('https://httpbin.org/cookies/set?name=value')
        # Exibir os cookies
        for cookie in jar:
            print(f'{cookie.key}: {cookie.value}')

if __name__ == '__main__':
    asyncio.run(main())

Uso Avançado: Cabeçalhos Personalizados e Solicitações POST

Você pode enviar cabeçalhos personalizados e executar solicitações POST com aiohttp:

python Copy
import asyncio
import aiohttp

async def main():
    headers = {
        'User-Agent': 'Mozilla/5.0 (compatible)',
        'Accept-Language': 'pt-BR,pt;q=0.5',
    }
    data = {
        'username': 'testuser',
        'password': 'testpass',
    }
    async with aiohttp.ClientSession() as session:
        async with session.post('https://httpbin.org/post', headers=headers, data=data) as response:
            json_response = await response.json()
            print('Resposta JSON:', json_response)

if __name__ == '__main__':
    asyncio.run(main())

Código Bônus

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

Conclusão

Com o aiohttp, você pode executar tarefas de web scraping assíncronas de forma eficiente e lidar com várias operações de rede simultaneamente. A integração com o CapSolver permite que você resolva captchas como o ReCaptcha V2, permitindo o acesso a conteúdo que pode estar restrito.

Sinta-se à vontade para expandir esses exemplos para atender às suas necessidades específicas. Lembre-se sempre de respeitar os termos de serviço dos sites que você raspa e seguir as diretrizes legais.

Boas raspadas!

Ver mais

Apr 30, 2026

Erro do Cloudflare 1020: Acesso Negado em Web Scraping & Proteção WAF

Aprenda o que causa o erro 1020 Acesso Negado do Cloudflare, como o Firewall de Aplicação Web e a detecção de bots funcionam e como os desenvolvedores podem reduzir falsos positivos em fluxos de trabalho de automação legítimos.

Adélia Cruz
Adélia Cruz
Apr 29, 2026

Monitorar preços dos produtos protegidos pelo WAF da AWS no n8n com o CapSolver

Aprenda como usar o modelo CapSolver n8n para monitorar páginas de produtos protegidas pelo AWS WAF, resolver desafios, extrair preços, comparar mudanças e disparar alertas automaticamente.

Adélia Cruz

Índice

Adélia Cruz
Apr 29, 2026

Agentes de IA em SEO: Da Pesquisa de Palavras-Chave até a Coleta de Dados Automatizada

Aprenda como os agentes de IA em SEO automatizam a pesquisa de palavras-chave, análise de concorrentes e coleta de dados — e como lidar com desafios CAPTCHA na sua pipeline com o CapSolver.

Adélia Cruz
Adélia Cruz
Apr 29, 2026

Documentação da API de Resolução de CAPTCHA para Desenvolvedores: Guia de 2026

Domine a resolução de CAPTCHA com nossa documentação completa da API para desenvolvedores. Aprenda como integrar o CapSolver para lidar com reCAPTCHA, AWS WAF e muito mais.

Adélia Cruz
Adélia Cruz