Tutorial: Como Executar Playwright no Termux (Android)
Executar Playwright no Termux requer um patch manual específico, pois o pacote oficial não reconhece nativamente "android" como uma plataforma suportada.
Pré-requisitos
* Termux instalado no seu dispositivo Android.
* Node.js instalado (pkg install nodejs).
Passo 1:
Inicialização do Projeto
Crie um novo diretório para o seu scraper e inicialize um projeto Node.js em branco.
No meu exemplo, estarei instalando isso a partir de uma pasta de projeto que já possui meu webscraper personalizado que quero usar.
Se você quiser fazer o mesmo, ignore os passos mkdir e cd para a pasta com seu próprio scraper personalizado.
mkdir meu-projeto-scraper
cd meu-projeto-scraper
npm init -y
Passo 2:
Instalar Dependências
Instale os pacotes necessários.
Nós fixamos esses na versão 1.58.2 para garantir consistência.
npm install playwright@1.58.2
npm install playwright-extra@4.3.6
npm install puppeteer-extra-plugin-stealth@2.11.2
npm install dotenv@17.4.1
npm install express@5.2.1
Passo 3:
O Patch Manual da Plataforma
Por padrão, o Playwright bloqueará a execução no Android.
Você DEVE editar manualmente o arquivo de registro para permitir isso.
Se você pular esta etapa, o Playwright não conseguirá executar o chromium no Termux
1. Abra o arquivo de índice do registro no seu editor de terminal:
nano ./node_modules/playwright-core/lib/server/registry/index.js
Procure por esta linha (use Ctrl + W no nano para pesquisar):
if (process.platform === "linux")
Altere essa linha para incluir a verificação da plataforma android:
if (process.platform === "linux" || process.platform === "android")
Para ser claro, há um espaço antes e depois do "||"
Salve e saia (Pressione Ctrl + O, Enter, depois Ctrl + X).
Passo 4: Verificação
Teste se a configuração está funcionando executando um pequeno script para inicializar o mecanismo do navegador.
node -e "const { chromium } = require('playwright'); console.log('Chromium carregado com sucesso');"
Isso deve ser uma linha
Se você ver "Chromium carregado com sucesso", seu ambiente está pronto para uso em scraping.
**Aviso e Guia de Configuração** :
⚠️ Aviso Final:
Configuração do Navegador
Ao executar o Playwright no Termux, você **não pode** usar o navegador Chromium "baixado" padrão porque não está compilado para a arquitetura Android/ARM.
A Configuração Especial:
Você deve apontar o Playwright para o binário do Chromium instalado no sistema. No seu scraper.js (ou qual quer que seja o script que inicia o navegador), você deve atualizar seu bloco chromium.launch da seguinte forma:
```javascript
const browser = await chromium.launch({
headless: true,
// ESTA LINHA É CRÍTICA:
executablePath: '/data/data/com.termux/files/usr/bin/chromium-browser',
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu'
]
});
```
Por que isso é necessário:
1. **executablePath**: Diz ao Playwright para usar o navegador Chromium instalado via pkg install chromium (a versão nativa do Termux) em vez do incompatível que o Playwright normalmente baixa.
2. **--no-sandbox**: O modelo de permissões do Termux/Android impede que o sandbox padrão do Chromium funcione. Esta flag é **obrigatória** para evitar falhas imediatas.
3. **--disable-dev-shm-usage**: O Termux tem memória compartilhada limitada (/dev/shm). Esta flag força o navegador a usar uma estratégia de gerenciamento de memória diferente, prevenindo erros de "sem memória" ou de buffer.
[!NOTA]
Certifique-se de que você instalou o navegador no Termux primeiro executando:
pkg install chromium