Web scraping com axios e cheerio

Image for post

E ai galera depois de um tempinho ausente to de volta aqui com um assunto bem interessante, vou estar mostrando com realizar um web scraping utilizando axios e cheerio no nodejs.

Web scraping é uma técnica de extração de dados utilizada para coletar dados de sites. Por meio de processos automatizados, implementados usando um rastreador bot, esse tipo de “raspagem” de informações é uma forma de realizar cópias de dados em que informações específicas são coletadas e copiadas da web, tipicamente em um banco de dados ou planilha local central, para posterior recuperação ou análise.

Agora que já sabemos oque é web scraping podemos dar inicio ao nosso projeto.Como objeto de estudo, farei um web scraping do site de noticias gcn .Para começar vamos criar o nosso projeto em node.

Crie uma pasta em qualquer local, abra o terminal e navegue ate essa pasta e execute o comando:

yarn init -y

ou

npm init -y

com nosso package.json criado abra o projeto no vscode ou seu editor/ IDE preferida.Com o editor vamor criar nosso index.js e instalar os pacotes que precisamos.

Primamente vamos instalar o axios, então execute no terminal:

yarn add axios

e em seguida vamos instalar o cheerio

yarn add cheerio

E de complemento vamos instalar o nodemon, para não precisar ficar executando o nosso projeto toda hora

ỳarn add nodemon

Com os dois instalados vamos importar o axios e o cheerio no nosso index.js

const axios = require('axios');const cheerio = require('cheerio');

Agora para facilitar um pouco vou colocar a primeira parte da nossa função e em seguida ir explicando:

async function scraping() {  const base_url = "https://gcn.net.br/";  const response = await axios.get(`${base_url}`);  const $ = cheerio.load(response.data);  console.log($.html());}scraping();

Aqui temos uma função assincrona que dei o nome de scraping, primeiramente criamos a variavel constante base_url que recebe o link que usaremos, em seguida temosa variavel constante response que recebe uma chamada get do axios, e por fim na variavel constante $ usamos o cheerio para carregar essa pagina para nós, e para que possamos visualizar carreguei dentro do console.log o html da pagina que carregamos.
Copie essa função e cole em seu projeto e execute o comando:

nodemon index.js

E voce vera no terminal um bloco de html enorme que é a nossa pagina, ta mais e agora? Agora como alvo de nosso estudo vamos capiturar os titulos da pagina.

para isso clique com o botão direito sobre a pagina e vá em inspecionar elemento, igual na foto abaixo

Image for post

vai abrir o devtools com varias abas, mas a que nos interessa é a aba Elements, onde temos todo o html da pagina, e do lado tempos 2 opções a primeira e uma seta para selecionar elementos especificos clique nela e selecione um texto da lista de repositorios, com isos ele vai selecionar dentro da aba Elements a div correspondente ao que precisamos, essa div possui um h1 que tem o titulo que precisamos, então deixe salvo a class dessa div para usarmos no projeto, agora vou colar mais uma parte do nosso código:

const data = [];$('.titulo h1').each((i, element) => {  if($(element).text() != undefined)    data.push($(element).text());})console.log(data)

Cole essa parte no lugar do console.log que inserimos para teste. aqui atraves da variavel $ recebemos como parametro a class da nossa div e o h1 que queremos extrair a informação, e atraves do each que é basicamente um foreach, iremos listar o elementos que são encontrados. Lá dentro do each fazemos um if para iguinorar valores indefinidos e dentro do if famos um push do restante, e mais uma vez para teste damos um console.log log no data. Para finalizarmos execute mais uma vez:

nodemon index.js

E podemos ver o resultado no terminal, e com isso finalizamos esse artigo.

A biblioteca cheerio tem muita coisa então recomendo que deem uma olhada na biblioteca deles e se divirta bastante, tambem vou deixar o link do projeto completo para quem quiser.

Postar um comentário

4 Comentários

  1. You’ll realize that the basket guess doesn’t have odds and win possibilities within the desk. That’s since you can not place a basket 먹튀사이트 먹튀프렌즈 guess in European and French roulette. Play the demo variations of roulette provided by our casinos to practice before getting into the real motion. The distinction between American roulette and European is within the format of their wheels. While the American sort has a single and double zero, the European version only has a single zero.

    ResponderExcluir
  2. Wheel Decide is a free online spinner tool that permits you to create your personal digital wheels for determination making, prize giveaways, raffles, video games, and more. Browse through our wheels and spin to randomize your life and make the selections that don't have any mistaken solutions. The key to success in any sport is efficient 파라오 카지노 money administration. Think about how much you can to|you presumably can} afford to guess before you start, and never go over that quantity. Don’t continue betting to chase losses and never guess money you can’t afford to lose.

    ResponderExcluir
  3. Este comentário foi removido por um administrador do blog.

    ResponderExcluir
  4. Unlock the potential of web scraping with Axios and Cheerio. Explore our resources to streamline data extraction and elevate your programming expertise.
    first time dui in Fairfax

    ResponderExcluir