Node-fetch
O Node-Fetch é um pequeno módulo que adiciona a API Fetch ao Node.js.

Com o fetch (no navegador ou através do Node Fetch), pode combinar a sintaxe await e .then para tornar a conversão do fluxo de leitura em JSON um pouco mais fácil — assim, os dados,
Como se pode ver no exemplo abaixo, este contém o JSON sem a necessidade de uma variável intermediária desnecessária.

Além disso, o Node Fetch suporta funcionalidades úteis, tais como a restrição do tamanho das respostas, o limite de redirecionamentos e falhas explícitas para depuração.
Pode utilizar várias bibliotecas, incluindo a node-fetch no Node.js, para enviar ou recuperar dados. No lado do cliente, a API Fetch do JavaScript pode ser utilizada para o mesmo fim
Pode carregar o módulo node-fetch antes de aceder à página inicial do Google. O endereço do servidor para o qual está a enviar um pedido HTTP é o único argumento que deve fornecer ao método fetch().
Pode encadear várias rotinas .then() para o ajudar a controlar a resposta e os dados da nossa solicitação, uma vez que o node-fetch funciona com base em promessas.
O campo URL contém simplesmente o URL efetivo do recurso que pretendemos obter. Se não for um URL absoluto, a função irá falhar.
Quando quiser utilizar o get() para algo que não seja um pedido GET padrão, utilizamos o parâmetro opcional options, mas abordaremos isso com mais pormenor mais tarde.
O método devolve um objeto Response, que fornece funções úteis e informações sobre a resposta HTTP, tais como:
- Texto () - devolve o corpo da resposta como uma cadeia de caracteres.
- JSON() - converte o corpo da resposta num objeto JSON e devolve um erro se não for possível processá-lo.
- Status e statusText - estes campos contêm informações sobre o código de estado HTTP.
- Ok - é verdadeiro se o estado for um código de estado 2xx (uma condição de sucesso).
- Headers - um objeto que contém cabeçalhos de resposta; a função get() pode ser utilizada para obter um único cabeçalho.
Popularidade
- 8 milhões de downloads semanais no npm
- Mais de 6,8 mil módulos que dependem do node-rest
- +383 Forks
- 3,8 mil estrelas no GitHub
- 38 colaboradores
Características do node-fetch
- Manter a coerência com a API .fetch da janela.
- Ao seguir as especificações do stream e do fetch do WHATWG, tenha em conta as vantagens e desvantagens e descreva as variações conhecidas.
- Utilização de funções assíncronas e promessas nativas
- Tanto na solicitação como na resposta, utilize fluxos nativos do Node para o corpo.
- Descodificar corretamente a codificação do conteúdo (gzip/brotli/deflate) e converter automaticamente a saída de cadeias de caracteres (incluindo res.json() e res.text()) para UTF-8.
- Para fins de depuração, algumas funcionalidades úteis incluem a restrição do tamanho das respostas, o limite de redirecionamentos e os erros explícitos.
Prós
- Com um tamanho de instalação de cerca de 150 KB, o Node-fetch é talvez o módulo de pedidos HTTP mais leve.
- Oferece funcionalidades impressionantes, tais como o modo JSON, a API Promise, compatibilidade com navegadores, cancelamento de pedidos e a capacidade de substituir a sua biblioteca Promise ou descodificar formatações web atuais, como deflate/grip.
- Segue os padrões mais recentes de pedidos HTTP em JavaScript e continua a ser o módulo mais descarregado depois do `request`, com cerca de 8 milhões de descargas por semana (ultrapassando o Got, o Axios e o Superagent).
Por que precisa de uma alternativa ao Node-fetch
- Não suporta HTTP/2 nem cookies
- O Node-fetch não permite o armazenamento em cache em conformidade com a RFC
- O Node-fetch não repete a tentativa em caso de falha.
- Não suporta eventos de progresso, erros de metadados, tempos de espera avançados nem ganchos.
As minhas principais alternativas ao node-fetch
Aqui está uma lista das minhas 5 principais alternativas ao node-fetch que pode utilizar nas suas soluções
- Axios
- Tenho
- Superagente
- Pedido
- WebscrapingAPI
Vou explicar cada um deles para que compreenda melhor o que são e o que oferecem.
Vamos começar!
1. Axios
O Axios é um cliente HTTP baseado em promessas para o Node.js e o navegador. Tal como o SuperAgent, analisa automaticamente as respostas JSON. A sua capacidade de realizar consultas simultâneas utilizando o Axios distingue-o ainda mais.
Para instalar o Axios

Pode efetuar o pedido indicando a configuração relevante.

Devido à sua simplicidade, alguns programadores preferem o Axios às APIs integradas. No entanto, muitas pessoas sobrestimam a necessidade de uma biblioteca deste tipo. O node-fetch é perfeitamente capaz de reproduzir as funcionalidades essenciais do Axios.
Popularidade
- Mais de 4,4 milhões de downloads no npm
- Mais de 15 600 módulos dependem disso
- Mais de 57 mil estrelas no GitHub
- 71 colaboradores
- +4,4 mil partilhas
Caraterísticas
- Efetuar pedidos XMLHttpRequest no navegador
- Suporta a API Promise
- Fazer pedidos HTTP no Node.js
- Interceptar resposta e pedido
- Cancelar pedidos
- Transformar os dados da resposta e do pedido
- Transformações automáticas de dados JSON
- Serialização automática de objetos de dados
- Suporte do lado do cliente
Prós
- O Axios permite-lhe configurar e personalizar totalmente os seus pedidos, bastando para isso fornecer-lhe um único objeto de configuração. Pode monitorizar o estado dos pedidos POST e executar modificações automatizadas de dados JSON.
- O Axios é também o módulo de pedidos HTTP front-end mais utilizado. É bastante popular e segue os padrões mais recentes de JavaScript. Lida com o cancelamento de pedidos, redirecionamentos, gzip/deflate, problemas de metadados e hooks.
Contras
- O Axios não suporta HTTP2, a API Stream nem o Electron. Além disso, não repete tentativas em caso de falhas e funciona no Node.js com suporte integrado a promessas. Para versões mais antigas, é necessário utilizar o Q promise ou o Bluebird. 2. Got
O Got é mais uma estrutura de pedidos HTTP intuitiva e robusta para o Node.js. Foi inicialmente concebido como uma alternativa leve ao popular pacote Request. Consulte esta tabela detalhada para saber como o Got se compara a outras bibliotecas.
Para instalar o got

O Got dispõe de uma opção para o tratamento de cargas JSON.

Unlike SuperAgent and Axios, Got does not automatically parse JSON. To enable this capability, { JSON: true } is added as an argument in a code.
De acordo com a documentação, foi gerado um erro porque o pedido é demasiado grande (tem vários gigabytes!). 4,46 MB contra 302 KB recebidos).
Popularidade
- Mais de 6,2 milhões de downloads no npm
- Mais de 2.500 módulos, dependendo do Got
- +280 partilhas
- Mais de 5 mil estrelas no GitHub
- 71 colaboradores
Caraterísticas
- Suporta HTTP/2
- Suporta PromiseAPI e StreamAPI
- Novas tentativas em caso de falha
- Segue os redirecionamentos
Prós
- Em comparação com as outras alternativas, o Got oferece mais funcionalidades e está a ganhar popularidade, uma vez que é fácil de utilizar, tem um tamanho de instalação reduzido e está em dia com todas as novas tendências do JavaScript.
Contras
- O Got não é compatível com navegadores 3. SuperAgent
O SuperAgent é uma pequena biblioteca de pedidos HTTP que pode ser utilizada no Node.js e em navegadores para efetuar consultas AJAX.
O SuperAgent dispõe de milhares de plugins para realizar tarefas como impedir o armazenamento em cache, transformar os dados de servidor e adicionar sufixos ou prefixos a URLs.
Para instalar o SuperAgent

Utilização no Node

Também pode ampliar as funcionalidades criando o seu próprio plugin. O SuperAgent também pode analisar dados JSON por si.
Popularidade
- 2,5 milhões de downloads
- Mais de 6,4 mil módulos dependem do SuperAgent
- +1,2 mil partilhas
- Mais de 14 mil estrelas no GitHub
- 182 colaboradores
Prós
- O Superagent é conhecido por oferecer uma interface intuitiva para a realização de pedidos HTTP, uma arquitetura de plugins e vários plugins para muitas funcionalidades populares atualmente disponíveis (por exemplo, o plugin «prefix» para adicionar um prefixo a todas as URLs).
- O Superagent também oferece uma API de fluxos e promessas, cancelamento de pedidos, novas tentativas em caso de falha de um pedido, suporta gzip/deflate e gere eventos de progresso.
Contras
- A compilação do Superagent está atualmente a falhar. Além disso, não oferece acompanhamento do progresso do upload, ao contrário do XMLHttpRequest
- Não suporta temporizadores, erros de metadados nem ganchos. 4. Pedido
O Request é um dos clientes de pedidos HTTP mais populares para Node.js e foi um dos primeiros módulos a ser publicado no repositório npm.

Tem mais de 14 milhões de downloads por semana e foi concebido para ser a forma mais simples de efetuar pedidos HTTP no Node.js.
Um ficheiro também pode ser transmitido numa solicitação POST ou PUT. Este método irá comparar a extensão do ficheiro com os tipos de conteúdo associados às extensões de ficheiro.
Também pode personalizar cabeçalhos HTTP, como o User-Agent, no objeto de opções.
Características
- Mais de 9 milhões de downloads na npm
- Mais de 6,4 mil módulos, dependendo da solicitação
- +3,2 mil partilhas
- Mais de 25,2 mil estrelas no GitHub
- 126 colaboradores
Caraterísticas
- Suporta HTTPS
- por predefinição, segue os redirecionamentos.
Prós
- É fácil começar a usar o Request e é fácil de utilizar.
- É um módulo popular e amplamente utilizado para efetuar chamadas HTTP
Contras
Está totalmente obsoleto desde 2020. Não se prevêem novas alterações
5. WebScrapingAPI
Devo dizer que a WebScrapingAPI me proporcionou soluções práticas para os desafios que enfrentei ao extrair dados da Internet. A WebScrapingAPI poupou-me tempo e dinheiro, ajudando-me a concentrar-me no desenvolvimento do meu produto.
A WebscrapingAPI é uma API escalável e de nível empresarial, fácil de utilizar, que ajuda a recolher e gerir dados HTML. Não nos esqueçamos de que tem toda a sua solução de web scraping reunida numa única API, o que significa um código simples e organizado.
Definir a chave da API e os argumentos da URL, bem como a sua chave de acesso, para o site que pretende extrair é a solicitação básica mais simples que pode fazer à API.
Compreender as funcionalidades que a WebScrapingAPI oferece é fundamental para nos ajudar na nossa jornada de web scraping. Esta informação pode ser consultada na extensa documentação, que inclui exemplos de código em várias linguagens de programação.
Muitas vezes deparei-me com medidas de proteção que detetavam e bloqueavam o meu bot, impedindo-o de fazer o que eu queria. Isso acontece porque não é possível extrair dados de todos os sites. Alguns utilizam medidas de proteção como a identificação do navegador e os CAPCHAs, o que é uma chatice.
Lidar com tecnologias de deteção de bots pode ser um desafio, mas a WebScrapingAPI oferece soluções que vão desde CAPTCHAs até ao bloqueio de IP e tentativas automáticas, gerindo tudo isso. Basta concentrar-se nos seus objetivos. Eles tratam de tudo o resto.

Possui uma excelente capacidade técnica, com mais de 100 milhões de proxies, garantindo que não seja bloqueado. Isto porque alguns sites só podem ser rastreados em determinados locais do mundo. Para tal, é necessário um proxy para aceder aos seus dados.
Como a gestão de um conjunto de proxies é complicada, a WebScrapingAPI trata de tudo por si. Dispõe de milhões de proxies rotativos para garantir que não seja detetado. Além disso, permite-lhe aceder a conteúdos com restrições geográficas utilizando um endereço IP específico.
Esta API oferece renderização em JavaScript. Pode ativar a renderização em JavaScript utilizando navegadores reais. Após ativá-la, poderá ver tudo o que é apresentado aos utilizadores. Isso inclui aplicações de página única que utilizam AngularJS, React ou outras bibliotecas.

O que os utilizadores vêem é exatamente o que recebem. Que melhor vantagem competitiva poderia haver?
Além disso, a infraestrutura da API está implementada na Amazon Web Services, oferecendo-lhe acesso a um vasto conjunto de dados globais, seguro e fiável.
Na minha opinião sincera, usar a WebScrapingAPI é uma excelente escolha.
Prós
- Construído em AWS
- Preços acessíveis
- Arquitetura obsessiva da velocidade
- TODOS os pacotes têm renderização de Javascript
- Serviços de alta qualidade, disponibilidade e estabilidade absoluta
- Mais de 100 milhões de proxies rotativos para reduzir o bloqueio
- Caraterísticas personalizáveis
Contras
Nenhum até agora.
Preços
- O plano inicial para utilizar esta API custa 49 dólares por mês.
- Opções de avaliação gratuita
A WebScrapingAPI é uma boa opção se achar que não tem tempo para criar o scraper da Web do zero. Não hesite em dar uma vista de olhos.
Por que a WebScrapingAPI é a minha principal recomendação:
Recomendo a WebScrapingAPI porque oferece soluções simples para a extração de dados da Web, acessíveis a todos através de uma única API. Além disso, possui uma das melhores interfaces de utilizador, o que facilita a extração de dados.
A API é suficientemente potente para realizar o seu trabalho.
Vamos parar um momento para analisar todos os dados que tem à sua disposição. Não se esqueça de que pode obter informações sobre os preços da concorrência e oferecer melhores ofertas aos seus clientes.
A WebScrapingAPI oferece-lhe otimização de preços. Como? Deixe-me explicar da seguinte forma. A sua empresa pode crescer significativamente ao ter uma visão mais clara da concorrência. À medida que os preços flutuam no seu setor, pode utilizar os dados desta API para saber como a sua empresa irá sobreviver.

A WebScrapingAPI é útil quando se procura um artigo que se pretende comprar. Pode utilizar os dados para comparar preços de vários fornecedores e escolher a melhor oferta.
Além disso, não precisa de se preocupar em ser bloqueado. Porquê? Porque esta API garante que obtém os dados de que precisa sem bloqueios. Com milhões de proxies rotativos, permanece indetetável e pode aceder a conteúdos com restrições geográficas utilizando um endereço IP específico.
Não é fantástico?
A infraestrutura da API também está construída na Amazon Web Services, oferecendo-lhe acesso a uma vasta base de dados global, segura e fiável. Por isso, empresas como a Steelseries, a Deloitte e a Wunderman Thompson confiam nesta API para as suas necessidades de dados e serviços de web scraping.

Além disso, custa apenas 49 dólares por mês. Estou impressionado com a velocidade que oferece. E, graças à utilização de uma rede global de proxies rotativos, conta já com mais de 10 000 utilizadores a utilizar os seus serviços. É por isso que recomendo a utilização da WebScrapingAPI para a recolha de dados.
Comece a sua jornada de scraping com a API REST líder em web scraping




