Pydoll
O Pydoll automatiza navegadores Chromium pelo Chrome DevTools Protocol, sem webdriver e sem esperas manuais. Use para extrair dados, testar aplicações web e automatizar fluxos reais de navegador em Python assíncrono.
Instalação
O Pydoll controla o Chrome ou o Edge que já estão instalados na sua máquina. Você não precisa baixar um webdriver nem manter as versões do driver em sincronia com o navegador.
Novo no Pydoll? Siga o Primeiros passos para um passo a passo completo.
Início rápido
Abra uma página, encontre elementos pela forma como você os descreveria para uma pessoa e interaja com timing humanizado:
import asyncio
from pydoll.browser.chromium import Chrome
async def main():
async with Chrome() as browser:
tab = await browser.start()
await tab.go_to('https://github.com/autoscrape-labs/pydoll')
star_button = await tab.find(
tag_name='button',
timeout=5,
raise_exc=False
)
if not star_button:
print('Button not found.')
return
await star_button.click()
await asyncio.sleep(3)
asyncio.run(main())
Quando o objetivo é dado, e não interação, defina um modelo e deixe o Pydoll extraí-lo, tipado e validado:
import asyncio
from pydoll.browser.chromium import Chrome
from pydoll.extractor import ExtractionModel, Field
class Quote(ExtractionModel):
text: str = Field(selector='.text')
author: str = Field(selector='.author')
tags: list[str] = Field(selector='.tag')
async def main():
async with Chrome() as browser:
tab = await browser.start()
await tab.go_to('https://quotes.toscrape.com')
quotes = await tab.extract_all(Quote, scope='.quote', timeout=5)
for quote in quotes:
print(f'{quote.author}: {quote.text}')
asyncio.run(main())
Os modelos suportam seletores CSS e XPath, mira em atributos HTML, transformações personalizadas e modelos aninhados. Saiba mais em Extração estruturada.
Por que Pydoll
- Sem webdriver: o Pydoll se conecta direto ao navegador pelo Chrome DevTools Protocol. Nada para baixar, nenhuma incompatibilidade de versão para depurar.
- Interações humanizadas: os cliques seguem trajetórias curvas do mouse e a digitação tem ritmo variável, com erros de digitação corrigidos de vez em quando, então sua automação se comporta como uma pessoa no teclado.
- Assíncrono por natureza: construído sobre
asyncio, então um único processo pode controlar muitas abas e navegadores ao mesmo tempo. - Tratamento do Cloudflare Turnstile: o Pydoll detecta o widget Turnstile e clica nele nativamente. Nenhum serviço externo de captcha para pagar ou integrar.
- Controle de rede: monitore, intercepte e modifique requisições conforme a página as faz.
- Extração tipada: declare um modelo Pydantic e receba objetos validados e amigáveis à IDE, em vez de elementos crus.
Próximos passos
- Primeiros passos: instale o Pydoll e rode seu primeiro script.
- Sua primeira automação: faça login em um site e extraia dados tipados.
- Migrando do Selenium e do Playwright: mapeie os comandos que você conhece para o Pydoll.
- Passando despercebido: a configuração mínima para evitar os sinais óbvios de bot.
- Guias: um guia por funcionalidade, do encontro de elementos à interceptação de requisições.
- Referência da API: cada classe e método público.
Principais patrocinadores
WELCOME20 20% de desconto
The Web Scraping Club
A newsletter número 1 dedicada a web scraping. Leia a análise completa deles sobre o Pydoll.
NodeMaven
Proxies de alta qualidade para scraping e automação. Segmentação por CEP, 99,9% de uptime, sem KYC.
PYDOLL35 35% de desconto
PYDOLL40 40% de desconto em ISP
NiuProxy
Proxies residenciais rotativos: 10TB a $0.35/GB ou 1TB a $0.50/GB para usuários do Pydoll.
PAY2 10% de desconto na recarga
Patrocinadores
Os patrocinadores mantêm o projeto funcionando e ajudam a financiar o desenvolvimento contínuo. Obrigado a todos que apoiam o Pydoll.
PYDOLL 15% de desconto
Rede de proxies residenciais com mais de 190 localidades
1GB grátis pelo nosso link
Proxies para web scraping & automação
+
Sua logo aqui
Torne-se um patrocinador
Licença
O Pydoll é distribuído sob a Licença MIT, então você pode usá-lo livremente em projetos pessoais e comerciais.




