Voltar ao blogue
Guias
Suciu Dan15 de novembro de 202210 min de leitura

Cheerio.load não está a funcionar: Isto é Como fazer scraping da web com o cheerio

Cheerio.load não está a funcionar: Isto é Como fazer scraping da web com o cheerio

O Cheerio.Load não funciona: porquê?

O Cheerio.Load não funciona: porquê?

At times, you will find the cheerio.load not working correctly. You're well aware that there is an issue, but you cannot figure out where it is. Remember one thing, the "<tbody" component should be the child of the "<table> component. If you don't get these things corrected, the Cheerio.load will not work.

In the current version of Cheerio parses markup, the parser itself does not recover from that particular error. You have to write a valid HTML string, which means you have to wrap the string in "</table> and "<table>. When you downgrade to Cheerio 0.22.0, its parsers will take care of it.

Cheerio: O que precisa de saber

Cheerio: O que precisa de saber

Então, o que é exatamente o Cheerio? Bem, trata-se de uma implementação leve, flexível e rápida para um servidor específico. Poderá perguntar-se qual é a necessidade do Cheerio quando já existe o «Puppeteer», que é uma ferramenta de scraping baseada em Node.JS.

Isso deve-se ao facto de o Puppeteer ser muito mais utilizado para automatizar tarefas no navegador e suportar a navegação visual em tempo real na Internet através da execução de scripts. O Puppeteer funciona na perfeição com todos os sites criados com React e Angular. Também é possível criar ficheiros PDF e capturar imagens com o Puppeteer.

Mas, no que diz respeito à velocidade, nada supera o Cheerio. É uma ferramenta minimalista para realizar tarefas de scraping, e também é possível combiná-la com vários outros módulos para criar um script completo. Este script em particular guardará os resultados num ficheiro CSV e também apresentará todas as outras informações.

O Cheerio é, sem dúvida, uma opção perfeita para trabalhos de extração de dados. Funciona também sem problemas com documentos HTML e com o Chrome. Não irá encontrar quaisquer problemas ao utilizá-lo, mas é importante compreender o seu funcionamento antes de o utilizar.

Como é que se pode extrair dados com o Cheerio?

Como é que se pode extrair dados com o Cheerio?

Quando se trata de extrair dados com a ajuda do Cheerio, é necessário seguir estes métodos:

Passo 1: Mkdir country-popular cd country-popular npm init

Passo 2: npm install Cheerio Axios npm install -D typescript esbuild esbuild-runner

Passo 3: "scripts" : [ "scrape": "esr./src/index.ts"]

Passo 4: importar cheerio de "cheerio"; const $ = Cheerio

Passo 5: const firstHeader = $('h2.primary'); console

Passo 6: npm run scrape

Como obter dados de um site diferente?

Como obter dados de um site diferente?

Deseja contestar dados ou informações provenientes de outro site? Siga estes 5 passos para o fazer:

  • Tem de analisar o código HTML do site que pretende rastrear
  • Aceda ao URL do site utilizando o código e, em seguida, descarregue o documento HTML e o seu conteúdo.
  • Para apresentar o conteúdo num formato legível
  • Depois disso, é necessário extrair todas as informações úteis e guardá-las num formato estruturado.

Como analisar um ficheiro HTML no Node.js?

Como analisar um ficheiro HTML no Node.js?

Pode utilizar os módulos npm htmlparser e jsdom para executar um analisador e criar um DOM no Node.js. Outras opções que pode escolher são:

  • CsQuery para
  • Pode converter facilmente XHTML a partir de HTML e utilizar XSLT
  • BeautifulSoup para Python
  • HTMLAgilityPack para

Extrair páginas web no Node com o Cheerio: como fazê-lo?

Extrair páginas web no Node com o Cheerio: como fazê-lo?

Nesta secção específica, irá aprender a extrair dados de uma página web com a ajuda do Cheerio. No entanto, antes de optar por este método, é necessário obter autorização para o fazer. Caso contrário, poderá estar a violar a privacidade, a infringir direitos de autor ou os termos de serviço.

Vai aprender a extrair o código ISO 3166-1 alfa-3 de todos os países e de várias outras jurisdições. Encontrará os dados dos países na secção de códigos da página ISO 3166-1 alfa-3. Então, vamos começar!

Passo 1: Criar um diretório de trabalho

Linha de comando do terminal a exibir `mkdir learn-cheerio`

Aqui, tem de criar um diretório para o projeto executando o comando «mkdir learn-cheerio» na área do terminal. Este comando irá criar um diretório chamado «learn-cheerio», e também pode dar-lhe um

Nesta etapa, irá criar um manual para o seu trabalho executando um comando no terminal. O comando irá criar um manual chamado learn-cheerio. Pode atribuir-lhe um nome diferente, se desejar.

Certamente irá ver uma pasta com o nome «learn-cheerio» criada após a execução correta dos elementos selecionados ou do comando «mkdir learn-cheerio». Depois de o diretório ter sido criado e de conseguir carregar com sucesso os recursos externos, terá de abrir o diretório e um editor de texto para inicializar o projeto.

Passo 2: Inicialização do projeto

Para garantir que o Cheerio seja implementado corretamente neste projeto, é necessário aceder ao diretório do projeto e, em seguida, inicializá-lo. Basta abrir o diretório no editor de texto da sua preferência e, em seguida, inicializá-lo executando o comando «npm init -y». Depois de concluir este processo, pode criar um ficheiro «package.json» na raiz do diretório do projeto.

Passo 3 - Instalar as dependências

Linha de comando do Terminal a exibir `npm i axios cheerio pretty`

Nesta secção, irá instalar as dependências do projeto executando o comando «npm install Axios cheerio pretty».

Quando utilizar este comando, o carregamento demorará algum tempo, por isso, tenha paciência. Depois de executar o comando com sucesso, poderá registar três dependências no ficheiro package.json, logo abaixo da secção «dependencies».

A primeira dependência chama-se «Axios», a segunda é o «Cheerio» e a última é o «Pretty». O Axios é um cliente HTTP bem conhecido que funciona no navegador e no Node. Vai precisar dele porque o Cheerio é considerado um analisador de marcação.

Portanto, para garantir que o Cheerio consiga analisar a estrutura e, em seguida, extrair os dados de que precisa, tem de utilizar

Para garantir que o Cheerio consiga analisar o código HTML e, em seguida, extrair os dados de que necessita, deve utilizar o Axios para obter o código HTML do site. Se preferir, pode utilizar outro cliente HTTP para obter o código HTML. Não tem de ser necessariamente o Axios.

Por outro lado, o «Pretty» é um pacote npm que serve para formatar o código de forma a torná-lo totalmente legível quando exibido no terminal.

Passo 4: Analise a página do site que pretende extrair

Antes de extrair os dados da página web, é necessário compreender bem a estrutura dos dados HTML resultantes da página. Nesta secção

Antes de extrair dados de uma página web, é fundamental compreender a estrutura HTML da página de onde irá extrair os dados. Na Wikipédia, aceda à página do código ISO 3166-1 alfa-3. Abaixo da secção «código atual», encontrará uma lista de países e os seus códigos.

Agora, basta abrir as DevTools clicando na combinação de teclas «CTRL + SHIFT + I». Em alternativa, pode clicar com o botão direito do rato e selecionar a opção «Inspecionar». Aqui está uma imagem que mostra como a «lista» aparece nas DevTools

Passo 5: Escrever o código para extrair os dados

Agora, tem de escrever o código para extrair os dados. Para começar, deve executar o comando «touch app.js» para criar o ficheiro app.js. Se este comando for executado com sucesso, poderá criar o ficheiro app.js no diretório do projeto sem qualquer erro.

Tal como acontece com todos os outros pacotes Node, é preciso instalar o pretty, o Cheerio e o anxious antes de começar a utilizá-los. Para tal, é necessário adicionar o seguinte código:

const axios = require ["axios"]

const Cheerio = require ["cheerio"]

const pretty = require ["pretty"]

Certifique-se de incluir estes códigos logo no início do ficheiro app.js. Certifique-se de que tem um bom conhecimento do cheerio antes de extrair os dados. Pode analisar a marcação manipulando a estrutura de dados resultante. Isto irá ajudá-lo a familiarizar-se com a sintaxe do cheerio e também com o processo habitual. Aqui está a marcação do elemento UL que contém os elementos LI:

const URL markup = `

<ul class ="fruits">

<li class="frutis__mango"> Mango </li>

<li class="fruits__apple"> Apple </li>

</ul>

Pode adicionar facilmente este comando de variável específico ao ficheiro app.js.

Como é que o WebScrapingAPI pode ajudar?

Como é que a WebScrapingAPI pode ajudar?
Página da API WebScrapingAPI que ilustra a rotação de proxies, a renderização de JavaScript e a resolução de CAPTCHAs

Fonte da imagem: 

A esta altura, já sabe como utilizar o Cheerio, por que razão o Cheerio.load não funciona, o elemento div, o conteúdo de texto, o nó e como carregar HTML. Embora o Cheerio seja uma excelente ferramenta de web scraping, existem outras disponíveis. Mas a que se destaca das restantes é o software WebScrapingAPI.

Este software de extração de dados é utilizado por mais de 10 000 empresas para limpar, extrair e recolher todos os dados úteis. Através deste software, pode obter facilmente HTML bruto a partir de qualquer tipo de página web, e este utiliza uma API simples. Pode fornecer dados prontos a processar a todos os colaboradores da sua empresa.

O software irá gerir automaticamente o JavaScript e a renderização visual do proxy através de CAPTCHAs e navegadores reais. O software irá certamente ajudar a expandir o seu negócio, e a sua equipa de apoio ao cliente estará disponível 24 horas por dia, 7 dias por semana, para lhe prestar a assistência de que necessita. Em comparação com outros softwares de API de scraping, este software específico irá recolher dados 3 vezes mais rapidamente.

A API WebScraping também lhe permitirá extrair dados de uma página web no Vue, AngularJS, React e várias outras bibliotecas JavaScript. Também irá encontrar a API Amazon Scraper, a API de Pesquisa e Resultados do Google,

Prós: 

  • Oferece um excelente serviço de apoio ao cliente
  • Software fácil de usar
  • Possui deteção de bots
  • Proxies rotativos

Contras: 

Não encontrei quaisquer desvantagens ao utilizar o software

Escolha a WebScrapingAPI: o melhor software de extração de dados da Web

Escolha a WebScrapingAPI: o melhor software de extração de dados da Web
Imagem de destaque na página inicial da WebScrapingAPI com um título sobre APIs REST para web scraping e um botão «Começar»

Fonte da imagem: 

A rastreabilidade e a extração de dados da Web são bastante importantes no mundo atual. Este trabalho é realizado por especialistas com um bom conhecimento sobre como extrair dados de sites sem cometer muitos erros. A extração de dados pode ajudá-lo a obter as informações de que necessita. No entanto, utilizar um software como o WebScrapingAPI pode tornar a extração muito mais rápida.

O software ganhou popularidade como uma das principais ferramentas de extração de dados de sites. As empresas que utilizam este software de extração obtêm mais de 50 milhões de resultados por mês. O software também recorre a tecnologia de ponta, o que o distingue das demais ferramentas.

Secção de preços da WebScrapingAPI que apresenta os planos Starter, Grow, Business e Pro com os respetivos preços mensais

Através da plataforma, pode comparar preços, gerar leads, obter dados financeiros, realizar estudos de mercado e muito mais. Então, está interessado nesta ferramenta de scraping de sites para recolher dados? Contacte já os especialistas da WebScrapingAPI! Ao utilizar o software deles, evitará que os pedidos sejam bloqueados e receberá um serviço de excelência.

Além disso, não se esqueça de consultar os opções de preços . Encontrará vários tipos de planos, com preços a partir de 49 $. Não se esqueça de pesquisar um pouco e verificar o preço antes de começar a utilizar o software. 

Experimente já a WebScrapingAPI!

Sobre o autor
Suciu Dan, cofundador da WebScrapingAPI
Suciu DanCo-fundador

Suciu Dan é cofundador da WebScrapingAPI e escreve guias práticos, voltados para programadores, sobre web scraping em Python, web scraping em Ruby e infraestruturas de proxy.

Comece a construir

Pronto para expandir a sua recolha de dados?

Junte-se a mais de 2.000 empresas que utilizam a WebScrapingAPI para extrair dados da Web à escala empresarial, sem quaisquer custos de infraestrutura.