Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
Cómo extraer texto de varias URL de la URL principal usando Axios y Cheerio

Recientemente me encontré con un problema que no puedo resolver con Axios y Cheerio. Lo que estoy tratando de hacer es raspar la página web de una tienda de café que contiene varios productos de café diferentes. Hasta ahora he podido raspar cada uno de los nombres de café, países, sus sabores y las direcciones URL de cada página de producto. Lo que me gustaría hacer es dar un paso más y raspar cada una de las URL de productos individuales y devolver su disponibilidad de stock. En cada página de producto individual hay un div de descripción que contiene texto que indica si está disponible o no. Sin embargo, me he encontrado con el problema de raspar cada URL para ese texto.

Hasta ahora esto es lo que tengo:

 const links = []; axios(coffeeStoreURL) .then(response => { const html = response.data; const coffeePageHTML = cheerio.load(html); const coffees = []; coffeePageHTML('.coffeeBadge', html).each(function() { const coffeeName = coffeePageHTML(this).find('.coffeeBadgeBottom a').text() const coffeeCountry = coffeePageHTML(this).find('.country-label').text() const coffeeFlavors = coffeePageHTML(this).find('.flavors').text() const coffeeImage = coffeePageHTML(this).find('img').attr('src') const coffeeURL = coffeePageHTML(this).find('a').attr('href') coffees.push({ coffeeImage, coffeeName, coffeeCountry, coffeeFlavors, coffeeURL }); links.push(( coffeeURL )) }); }) .then( () => { for (let i = 0; i < links.length; i++) { axios(links[i]) //This is where I am stuck on how to scrape each link in my links array and use cheerio to grab the div data from each page } }).catch(err => console.log(err));

Supongo que estoy en el camino correcto, pero si no, cualquier orientación sería muy apreciada.

Gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La forma rápida pero menos elegante de hacer esto es llamando a una función anónima autoejecutable (también conocida como IIFE ) que contiene cada iteración dentro de su bucle for .

 for (let i = 0; i < links.length; i++) { (function(link) { // do your axios calls here, "link" is holding the current URL })(links[i]); }

Si desea algo más elegante, consulte esta pregunta: Axios.get().then() en un bucle for

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda