{"_id":"@afilimax/amazon-scraper","_rev":"2-ecc513f34cf539f1f70847042e8092b1","name":"@afilimax/amazon-scraper","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@afilimax/amazon-scraper","version":"0.1.0","keywords":["afilimax","amazon scraper","brazilian","product extractor"],"author":{"name":"Marcuth"},"license":"MIT","_id":"@afilimax/amazon-scraper@0.1.0","maintainers":[{"name":"marcuth","email":"marcuth2006@gmail.com"}],"dist":{"shasum":"e595988bc632d9b7083ae82049814b8562e8189f","tarball":"https://registry.npmjs.org/@afilimax/amazon-scraper/-/amazon-scraper-0.1.0.tgz","fileCount":25,"integrity":"sha512-OsxSFO5BcmKxW6LakMYpgJ0VR4i7UzAqsfaDwvHhzVXuQvW7y4vLEBcGmyUtW2s1p9tHLtzvjUFQgch6MKFVbw==","signatures":[{"sig":"MEYCIQCeGm5FWYg+7ccT7//PfTESJkzCimruevzJp41Z7bNk1AIhAKxUY+wzdmnhw5mLdC0Nu9PU09AsxWpEo39U15LqlowM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30026},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"9c89e60b3794535f1fced8294442f08f4859bc17","scripts":{"dev":"ts-node ./src/index.ts","test":"jest","build":"tsc","format":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marcuth","email":"marcuth2006@gmail.com"},"_npmVersion":"11.8.0","description":"Afilimax Amazon Scraper é um pacote de extração de dados do marketplace da Amazon, baseado do framework de Web Scraping \"Xcrap\"","directories":{},"_nodeVersion":"24.13.0","dependencies":{"winston":"^3.19.0","@xcrap/core":"^0.2.3","@xcrap/extractor":"^0.3.2","@xcrap/transformer":"^0.3.7","@xcrap/got-scraping-client":"^0.1.0","@xcrap/puppeteer-extra-client":"^0.1.0","puppeteer-extra-plugin-stealth":"^2.11.2","@mihnea.dev/puppeteer-extra-amazon-captcha":"^1.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","eslint":"^10.0.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","prettier":"^3.8.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^25.2.3","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","prettier-plugin-sort-imports":"^1.8.10"},"peerDependencies":{"@afilimax/core":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/amazon-scraper_0.1.0_1771037967081_0.5722366130365579","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@afilimax/amazon-scraper","version":"0.1.1","type":"commonjs","description":"Afilimax Amazon Scraper é um pacote de extração de dados do marketplace da Amazon, baseado do framework de Web Scraping \"Xcrap\"","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc","dev":"ts-node ./src/index.ts","format":"prettier --write \"src/**/*.ts\"","test":"jest"},"publishConfig":{"access":"public"},"keywords":["afilimax","amazon scraper","brazilian","product extractor"],"author":{"name":"Marcuth"},"license":"MIT","devDependencies":{"@types/jest":"^30.0.0","@types/node":"^25.3.0","eslint":"^10.0.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.5","jest":"^30.2.0","prettier":"^3.8.1","prettier-plugin-sort-imports":"^1.8.11","ts-jest":"^29.4.6","ts-node":"^10.9.2","typescript":"^5.9.3"},"dependencies":{"@mihnea.dev/puppeteer-extra-amazon-captcha":"^1.0.3","@xcrap/core":"^0.2.3","@xcrap/extractor":"^0.3.2","@xcrap/got-scraping-client":"^0.1.1","@xcrap/puppeteer-extra-client":"^0.1.0","@xcrap/transformer":"^0.3.7","puppeteer-extra-plugin-stealth":"^2.11.2","winston":"^3.19.0"},"peerDependencies":{"@afilimax/core":"^0.2.2"},"gitHead":"99856f59913aa36bb6be7402cc1e17829adb0d4e","_id":"@afilimax/amazon-scraper@0.1.1","_nodeVersion":"24.13.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-ICOsBWhP5q70Tydn+u6g/5bzETAfJR8po4NEemeG8DGffHY3AQ3EqtTkl9WXAdB2yIYO610IXTqNtD5zjJ3GHA==","shasum":"2b459ba07f81e315cf6f48350b73df0b54596aad","tarball":"https://registry.npmjs.org/@afilimax/amazon-scraper/-/amazon-scraper-0.1.1.tgz","fileCount":25,"unpackedSize":34254,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCYi5DQ9DpR49hKBTkHg91jzEn39zsnrO7nbSl8C2/euwIhAO5PLvZGq+6k+rNZsuOQRFZPcZxRIe3VWR78OxyHOQoa"}]},"_npmUser":{"name":"marcuth","email":"marcuth2006@gmail.com"},"directories":{},"maintainers":[{"name":"marcuth","email":"marcuth2006@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/amazon-scraper_0.1.1_1775758926408_0.6727160768483296"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-14T02:59:26.970Z","modified":"2026-04-09T18:22:06.695Z","0.1.0":"2026-02-14T02:59:27.211Z","0.1.1":"2026-04-09T18:22:06.557Z"},"author":{"name":"Marcuth"},"license":"MIT","keywords":["afilimax","amazon scraper","brazilian","product extractor"],"description":"Afilimax Amazon Scraper é um pacote de extração de dados do marketplace da Amazon, baseado do framework de Web Scraping \"Xcrap\"","maintainers":[{"name":"marcuth","email":"marcuth2006@gmail.com"}],"readme":"# @afilimax/amazon-scraper\n\n[![NPM Version](https://img.shields.io/npm/v/@afilimax/amazon-scraper.svg)](https://www.npmjs.com/package/@afilimax/amazon-scraper)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nO `@afilimax/amazon-scraper` é uma biblioteca poderosa e resiliente para extração de dados de produtos da Amazon, focada especialmente no marketplace brasileiro (Amazon.com.br). Construída sobre o ecossistema `@xcrap`, ela oferece um sistema híbrido de requisições que maximiza a velocidade e a taxa de sucesso.\n\n## ✨ Principais Características\n\n- **🔄 Sistema Híbrido Resiliente**: Utiliza `GotScrapingClient` por padrão para máxima velocidade. Se um CAPTCHA for detectado, a biblioteca muda automaticamente para o `PuppeteerExtraClient` (browser real) para resolver o desafio e obter os dados.\n- **🛡️ Evasão de Bots**: Integra `StealthPlugin` e `AmazonCaptchaPlugin` para minimizar bloqueios.\n- **📊 Dados Estruturados**: Extrai títulos, preços, imagens, avaliações, especificações técnicas, disponibilidade e informações de frete.\n- **🧩 Baseado em @xcrap**: Utiliza modelos de extração e transformação declarativos, facilitando a manutenção.\n- **📦 Tipagem TypeScript**: Totalmente escrito em TypeScript com definições de tipos para todos os retornos.\n\n## 🚀 Instalação\n\n```bash\nnpm install @afilimax/amazon-scraper\n```\n\n*Nota: Certifique-se de ter as dependências do @afilimax/core devidamente configuradas se estiver usando em um ambiente monorepo.*\n\n## 🛠️ Como Usar\n\n### Exemplo Básico\n\n```typescript\nimport { AmazonScraper } from '@afilimax/amazon-scraper';\n\nasync function run() {\n    // Inicializa o scraper\n    const scraper = new AmazonScraper({\n        quiet: false // Define se deve exibir logs no console\n    });\n\n    try {\n        const url = 'https://www.amazon.com.br/dp/B08P2B889P';\n        \n        // Obtém os dados do produto\n        const product = await scraper.getProduct({ url });\n\n        console.log('Dados do Produto:', JSON.stringify(product, null, 2));\n    } catch (error) {\n        console.error('Erro ao extrair produto:', error);\n    } finally {\n        // Importante fechar o browser (Puppeteer) se ele tiver sido aberto\n        await scraper.close();\n    }\n}\n\nrun();\n```\n\n### Configurações Avançadas\n\nVocê pode passar opções customizadas para o Puppeteer ou para o cliente de requisições HTTP (Got):\n\n```typescript\nconst scraper = new AmazonScraper({\n    puppeteer: {\n        headless: true,\n        args: ['--no-sandbox']\n    },\n    gotScraping: {\n        // Opções do got-scraping\n    },\n    quiet: true\n});\n```\n\n## 📋 API Reference\n\n### `AmazonScraper`\n\n#### `constructor(options?: AmazonScraperOptions)`\n- `puppeteer`: Opções para o `PuppeteerExtraClient`.\n- `gotScraping`: Opções para o `GotScrapingClient`.\n- `quiet`: Se `true`, desativa os logs de depuração.\n\n#### `getProduct(options: { url: string }): Promise<ScrapedProduct>`\nExtrai todos os dados de um produto a partir de uma URL. Faz a limpeza automática de parâmetros de rastreamento da Amazon antes da extração.\n\n#### `getProductPageParser(options: { url: string }): Promise<HtmlParser>`\nObtém apenas o parser HTML da página. Útil se você precisar fazer extrações manuais específicas usando `@xcrap/extractor`.\n\n#### `close(): Promise<void>`\nFecha as instâncias abertas do browser. Sempre chame este método ao finalizar o uso.\n\n## 🗃️ Estrutura de Dados Retornada\n\nO método `getProduct` retorna um objeto seguindo o `scrapedProductSchema` do `@afilimax/core`, contendo:\n\n- `title`: Título do produto.\n- `price`: Preço atual (normalizado).\n- `description`: Descrição detalhada.\n- `images`: Array de URLs das imagens em alta resolução.\n- `brand`: Marca do produto.\n- `rating`: Objeto com média e total de avaliações.\n- `specifications`: Lista de especificações técnicas.\n- `features`: Características principais.\n- `availability`: Status de estoque.\n- `shipping`: Informações de frete estimadas.\n- `scrapedAt`: Timestamp da extração.\n\n## 🤝 Contribuição\n\nEste projeto é focado no marketplace brasileiro. Se você deseja adicionar suporte para outros idiomas ou marketplaces regionais da Amazon, sinta-se à vontade para abrir uma issue ou enviar um Pull Request.\n\n1. Clone o repositório.\n2. Instale as dependências: `npm install`.\n3. Execute os testes: `npm test`.\n\n## 📄 Licença\n\nDistribuído sob a licença MIT. Veja `LICENSE` para mais informações.\n","readmeFilename":"README.md"}