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

O Cheerio.load não funciona: Veja aqui como extrair dados da Web com o Cheerio

O Cheerio.load não funciona: Veja aqui como extrair dados da Web com o Cheerio

Cheerio.Load não funciona: porquê?

Cheerio.Load não funciona: porquê?

Por vezes, irá verificar que o Cheerio.Load não funciona corretamente. Está ciente de que existe um problema, mas não consegue descobrir onde está. Lembre-se de uma coisa: o componente "<tbody" deve ser filho do componente "<table>". Se não corrigir estas coisas, o Cheerio.Load não funcionará.

Na versão atual do Cheerio que analisa a marcação, o próprio analisador não recupera desse erro específico. Tem de escrever uma cadeia de caracteres HTML válida, o que significa que tem de envolver a cadeia em "</table> e "<table>. Quando fizer o downgrade para o Cheerio 0.22.0, os seus analisadores tratarão disso.

Cheerio: O que precisa de saber

Cheerio: O que precisa de saber

Então, o que é exatamente o Cheerio? Bem, é uma implementação enxuta, flexível e rápida para um servidor específico. Pode pensar: qual é a necessidade do Cheerio quando se tem o "Puppeteer", que é um dispositivo de scraping baseado em Node.JS?

Isso porque o Puppeteer é muito mais utilizado para automatizar o trabalho do navegador e suporta a navegação visual em tempo real na Internet na forma de execução de scripts. O Puppeteer funcionará perfeitamente com todos os sites criados com React e Angular. Também pode criar PDFs e fazer capturas de ecrã com o Puppeteer.

Mas quando se trata de velocidade, nada supera o Cheerio. É uma ferramenta minimalista para realizar o trabalho de scraping, e também pode combiná-la com vários outros módulos para criar um script completo. Este script específico guardará a saída em CSV e também retornará todas as outras informações.

O Cheerio é certamente uma opção perfeita para trabalhos de scraping. Também funciona perfeitamente com documentos HTML e o Chrome. Não irá encontrar quaisquer problemas ao utilizá-lo, mas precisa de saber como funciona antes de o utilizar.

Como pode extrair dados com o Cheerio?

Como pode extrair dados com o Cheerio?

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

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: import cheerio from "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 extrair dados/informações de um site diferente? Siga estes 5 passos para o fazer:

  • Tem de inspecionar o 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 da página.
  • Converta o conteúdo para um formato legível
  • Depois disso, tem de 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 realizar uma análise e desenvolver 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 Cheerio: como fazê-lo?

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

Nesta secção específica, irá compreender como extrair dados de uma página web com a ajuda do Cheerio. Mas antes de optar por este método de extração, precisa de ter 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.

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

Passo 1: Criar um diretório de trabalho

Terminal command line showing `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 específico irá criar um diretório, conhecido como "learn-cheerio", e também pode dar-lhe um

Nesta etapa, irá criar um diretório para a sua tarefa executando um comando no terminal. O comando criará um diretório chamado learn-cheerio. Pode dar-lhe um nome diferente, se desejar.

Irá certamente ver uma pasta com o nome "learn-cheerio" criada após executar corretamente os elementos selecionados ou o comando "mkdir learn-cheerio". Depois de o diretório estar criado e de conseguir carregar recursos externos com sucesso, terá de abrir o diretório e um editor de texto para iniciar o projeto.

Passo 2: Inicialização do projeto

Para garantir que o Cheerio seja implementado corretamente neste projeto, tem de navegar até 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" no diretório raiz do projeto.

Passo 3 - Instalar as dependências

Terminal command line showing `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, seja paciente. Depois de executar o comando com sucesso, pode registar três dependências no ficheiro package.json, logo abaixo da secção de dependências.

A primeira dependência é conhecida como «Axios», a segunda é «Cheerio» e a última é «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.

Assim, para garantir que o Cheerio consiga analisar a marcação e, em seguida, extrair os dados de que necessita, tem de utilizar

Para garantir que o Cheerio consiga analisar a marcação e, em seguida, extrair os dados de que necessita, deve utilizar o Axios para obter a marcação do site. Pode utilizar um cliente HTTP diferente para buscar a marcação, se desejar. Não tem necessariamente de ser o Axios.

O "Pretty", por outro lado, é um pacote npm para embelezar a marcação, de modo a torná-la totalmente legível quando impressa 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 de dados HTML resultante da página. Nesta secção

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

Agora, basta abrir o DevTools clicando na combinação de teclas «CTRL + SHIFT + I». Caso contrário, 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 no DevTools

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

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

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

const axios = require ["axios"]

const Cheerio = require ["cheerio"]

const pretty = require ["pretty"]

Certifique-se de inserir estes códigos logo no início do ficheiro app.js. Certifique-se de ter um bom conhecimento do Cheerio antes de extrair os dados. Pode analisar a marcação manipulando a estrutura de dados resultante. Isso irá ajudá-lo a aprender sobre a sintaxe do Cheerio e também sobre o processo comum. Aqui está a marcação do elemento UL que contém os elementos LI:

const URL markup = `

<ul class ="fruits">

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

<li class="fruits__apple"> Maçã </li>

</ul>

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

Como scrapingapi.com/" rel="noopener noreferrer">é que a WebScrapingAPI pode ajudar?

Como é que a WebScrapingAPI pode ajudar? WebScrapingAPI Scraper API page illustrating proxy rotation, JavaScript rendering, and CAPTCHA solving

Fonte da imagem: 

A esta altura, já sabe como utilizar o Cheerio, a razão pela qual o Cheerio.load não funciona, o elemento div, o conteúdo de texto, o nó e o carregamento de HTML. Embora o Cheerio seja uma excelente ferramenta de web scraping, existem outras no mercado. Mas a que se destaca entre as restantes é o software WebScrapingAPI.

Este software de scraping é utilizado por mais de 10 000 empresas para limpar, extrair dados da web e recolher todos os dados úteis. Através deste software, pode facilmente obter HTML bruto de qualquer tipo de página web, e este utiliza uma API simples. Pode oferecer dados prontos a processar para todas as pessoas na sua empresa.

O software trata automaticamente do JavaScript do proxy e da renderização visual 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 ajuda de que necessita. Em comparação com outro software de API de scraping, este software específico recolhe dados 3 vezes mais rápido.

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

Prós: 

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

Contras: 

Não encontrei quaisquer contras ao utilizar o software

Escolha o WebScrapingAPI: o melhor software de web scraping

Escolha o WebScrapingAPI: o melhor software de web scraping WebScrapingAPI homepage hero with headline about REST APIs for web scraping and a Get started button

Fonte da imagem: 

O rastreamento e a extração de dados da Web são bastante importantes no mundo atual. O trabalho é realizado por especialistas que possuem um bom conhecimento sobre como extrair dados de sites sem muitos erros. O trabalho de extração pode ajudá-lo a obter os dados de que necessita. Mas ter um software como o WebScrapingAPI pode tornar a extração muito mais rápida.

O software ganhou popularidade como um dos principais softwares de scraping de sites. As empresas que utilizam este software de scraping obtêm mais de 50 milhões de dados por mês. O software também utiliza tecnologia de ponta, o que o destaca entre as outras ferramentas.

WebScrapingAPI pricing section showing Starter, Grow, Business, and Pro plan cards with monthly prices

Através da plataforma, pode fazer comparações de preços, geração de leads, dados monetários, estudos de mercado e muitas outras coisas. Então, está interessado nesta ferramenta de scraping de sites para recolher dados? Pode contactar os especialistas da WebScrapingAPI agora mesmo! A utilização do software irá evitar pedidos bloqueados e irá receber um serviço de excelência.

Além disso, não se esqueça de verificar as opções de preços. Encontrará vários tipos de planos, que começam a partir de 49 $. Certifique-se de fazer alguma pesquisa e verificar o preço antes de começar a utilizar o software. 

Utilize a WebScrapingAPI hoje mesmo!

Sobre o autor
Suciu Dan, Co-fundador @ 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.