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

166
Visualizações
No se pueden raspar ciertos elementos con Cheerio

Estoy tratando de raspar una página de producto usando titiritero y Cheerio. (esta página)

Estoy usando una identificación de datos para raspar el título y la imagen. El problema es que el título nunca se raspa mientras que la imagen sí lo hace todo el tiempo.

He intentado raspar el título por nombre de clase, pero tampoco funciona. ¿Tiene esto algo que ver con el sitio web específico que estoy tratando de raspar? Gracias.

mi código:

 // Load cheerio const $ = cheerio.load(data); /* Scrape Product Page */ const product = []; // Title $('[data-testid="product-name"]').each(() => { product.push({ title: $(this).text(), }); }); // Image $('[data-testid="product-detail-image"]').each((index, value) => { const imgSrc = $(value).attr('src'); product.push({ image: imgSrc, }); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Como mencioné en los comentarios, casi no se me ocurre ningún caso de uso que tenga sentido tanto con Puppeteer como con Cheerio a la vez. Si los datos son estáticos, use Cheerio junto con una biblioteca de solicitud simple como Axios; de lo contrario, use Puppeteer y omita Cheerio por completo a favor de los selectores nativos de Puppeteer.

Otra posible razón para usar Titiritero es si su biblioteca de solicitudes está siendo bloqueada por el detector de robots del servidor, como parece ser el caso aquí.

Este script funcionó para mí:

 const puppeteer = require("puppeteer"); let browser; (async () => { browser = await puppeteer.launch({headless: true}); const [page] = await browser.pages(); const url = "https://stockx.com/nike-air-force-1-low-white-07"; await page.goto(url); const nameSel = '[data-testid="product-name"]'; await page.waitForSelector(nameSel, {timeout: 60000}); const name = await page.$eval(nameSel, el => el.textContent); const imgSel = '[data-testid="product-detail-image"]'; await page.waitForSelector(imgSel); const src = await page.$eval(imgSel, el => el.src); console.log(name, src); })() .catch(err => console.error(err)) .finally(() => browser?.close()) ;
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