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

Ferramentas de Raspagem de Dados Instantâneas: Métodos Rápidos para Extrair Dados da Web Sem Código
Descubra as melhores ferramentas de raspagem de dados instantâneas para 2026. Aprenda formas rápidas de extrair dados da web sem código usando as melhores extensões e APIs para extração automatizada.

Emma Foster
28-Jan-2026

Uso do Navegador vs Browserbase: Qual Ferramenta de Automação de Navegador é Melhor para Agentes de IA?
Compare o uso do navegador vs Browserbase para automação de agentes de IA. Descubra funcionalidades, preços e como resolver CAPTCHAs com o CapSolver para fluxos de trabalho sem interrupções.

Adélia Cruz
26-Jan-2026

Bloqueios de IP em 2026: Como Funcionam e Métodos Práticos para Contornar Eles
Aprenda como burlar o banimento de IP em 2026 com nosso guia abrangente. Descubra técnicas modernas de bloqueio de IP e soluções práticas como proxies residenciais e solucionadores de CAPTCHA.

Adélia Cruz
26-Jan-2026

Como resolver Captcha no Maxun com Integração do CapSolver
Um guia prático para integrar o CapSolver com o Maxun para raspagem de web realista. Aprenda como lidar com reCAPTCHA, Cloudflare Turnstile e sites protegidos por CAPTCHA usando fluxos de trabalho de pré-autenticação e robô.

Adélia Cruz
21-Jan-2026

Melhores Ferramentas de Extração de Dados para Usar em 2026 (Comparação Completa)
Descubra as melhores ferramentas de extração de dados para 2026. Compare as principais plataformas de raspagem de web, ETL e com inteligência artificial para automatizar sua coleta de dados e fluxos de trabalho de IA.

Adélia Cruz
21-Jan-2026

Como resolver Captcha no Browser4 com integração do CapSolver
Automação do Browser4 de alto throughput combinada com o CapSolver para lidar com desafios de CAPTCHA na extração de dados da web em larga escala.

Adélia Cruz
21-Jan-2026

