Como usar aiohttp para Web Scraping

Aloísio Vítor
Image Processing Expert
23-Sep-2024
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
asynciopara 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
pip install aiohttp
Exemplo básico: Fazendo uma solicitação GET
Aqui está como executar uma solicitação GET simples usando aiohttp:
python
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
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:
“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
pip install capsolver
Agora, aqui está como você pode resolver um ReCaptcha V2 e usar a solução em sua solicitação:
python
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
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
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
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!
Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.
Mais

CAPTCHA de IA Funcionada por Grandes Modelos: Por que É Mais Adequada para Cenários Empresariais
Como os modelos visuais de IA estão redefinindo o reconhecimento de CAPTCHA e por que solucionadores de nível corporativo precisam de dados, escala e treinamento personalizado.

Adélia Cruz
13-Mar-2026

WebMCP vs MCP: Qual é a diferença para Agentes de IA?
Explore as diferenças principais entre WebMCP e MCP para agentes de IA, compreendendo seus papéis na automação da web e na interação com dados estruturados. Aprenda como esses protocolos moldam o futuro das capacidades dos agentes de IA.

Emma Foster
13-Mar-2026

OpenClaw vs. Nanobot: Escolhendo Seu Agente de IA para Automação
Compare OpenClaw e Nanobot, dois frameworks de agentes de IA líderes, para automação eficiente. Descubra suas características, desempenho e como o CapSolver melhora suas capacidades.

Anh Tuan
11-Mar-2026

Como resolver CAPTCHA em OpenClaw – Guia passo a passo com a extensão CapSolver
Aprenda como resolver CAPTCHA no OpenClaw usando a extensão do Chrome CapSolver para automatização de navegador de IA sem interrupções.

Adélia Cruz
06-Mar-2026

Automação PicoClaw: Um Guia para a Integração da API CapSolver
Aprenda a integrar o CapSolver com o PicoClaw para resolução automática de CAPTCHA em hardware de borda ultra-leve de $10.

Adélia Cruz
02-Mar-2026

Como resolver Captcha no Nanobot com CapSolver
Automatize a resolução de CAPTCHA com o Nanobot e o CapSolver. Use o Playwright para resolver reCAPTCHA e o Cloudflare de forma autônoma.

Adélia Cruz
02-Mar-2026

