Skip to content

wargas/crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crawler

Classe utilitária para realizar requisições HTTP com:

  • Persistência automática de cookies
  • Parsing automático de HTML
  • Manipulação do DOM usando linkedom
  • Cliente HTTP baseado em got

Instalação

bun add @wargas/crawler

ou usando npm:

npm install @wargas/crawler

Uso básico

import { Crawler } from "@wargas/crawler";

const crawler = Crawler.factory();

await crawler.client.get("https://example.com");

console.log(crawler.html);

console.log(
    crawler.document.querySelector("title")?.textContent
);

Cookies persistentes

Os cookies são armazenados automaticamente no arquivo:

cookies.json

Isso permite manter sessão entre execuções.


Limpar cookies

await crawler.removeAllCookies();

Acessando o DOM

Como o HTML é convertido automaticamente usando linkedom, é possível utilizar APIs similares ao navegador:

const links = crawler.document.querySelectorAll("a");

for (const link of links) {
    console.log(link.getAttribute("href"));
}

Configurações atuais

A instância do got é criada com:

followRedirect: false

Ou seja:

  • redirects não são seguidos automaticamente
  • cookies são persistidos
  • HTML é parseado automaticamente após cada resposta

Possíveis melhorias

  • Suporte a proxy
  • Retry automático
  • Timeout configurável
  • User-Agent customizado
  • Suporte a certificados digitais
  • Suporte a HTTP2
  • Métodos helper (get, post, login, etc.)
  • Cache de páginas

Licença

MIT

About

Crawler http

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors