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

254
Visualizações
un selector obtiene todos los elementos, pero el otro no obtiene todos los elementos de la página

(modificado después de los consejos de los comentarios)

Lo que estoy tratando de hacer : raspado web para obtener los 100 nombres de criptomonedas de este sitio web .

Problema : el selector que utilicé no selecciona todos los nombres criptográficos en la página. Solo algunos de ellos son seleccionados.

En esa página web, hay 100 filas y cada fila tiene un nombre de criptomoneda. Así que 100 nombres en total.

Si uso este selector tr td a[href*="/currencies/"][href$="/"]:not([href$="/markets/"]) ,

Encuentra los 100 elementos en la página, y puedo obtener la URL de cada criptografía de estos 100 elementos. (hay 100 criptomonedas en una página)

una muestra de los 100 elementos seleccionados:

 <a href="/currencies/ethereum/" class="cmc-link"><div class="sc-16r8icm-0 sc-1teo54s-0 dBKWCw"><img class="coin-logo" src="https://s2.coinmarketcap.com/static/img/coins/64x64/1027.png" loading="lazy" alt="ETH logo"><div class="sc-16r8icm-0 sc-1teo54s-1 dNOTPP"><p font-weight="semibold" color="text" font-size="1" class="sc-1eb5slv-0 iworPT">Ethereum</p><div class="sc-1teo54s-2 fZIJcI"><div class="sc-1teo54s-3 etWhyV">2</div><p color="text3" class="sc-1eb5slv-0 gGIpIK coin-item-symbol" font-size="1">ETH</p></div></div></div></a>

-Ningún problema hasta ahora.

Pero, si agrego >div>div>p a este selector para obtener cada nombre criptográfico,

( tr td a[href*="/currencies/"][href$="/"]:not([href$="/markets/"])>div>div>p ),

solo se seleccionan 19 elementos, no los 100 elementos.

una muestra de los elementos seleccionados:

 <p font-weight="semibold" color="text" font-size="1" class="sc-1eb5slv-0 iworPT">Ethereum</p>

Si me desplazo hacia abajo en la página, la cantidad de elementos seleccionados aumenta, pero lo que quiero es obtener los 100 elementos sin desplazarme con la rueda.

  1. ¿Por qué el primer selector encuentra todos los elementos de inmediato, mientras que el segundo necesita desplazarse hacia abajo en la página?
  2. ¿Qué selector debo usar para seleccionar los 100 nombres de criptomonedas sin desplazarme hacia abajo?

Gracias por adelantado :)

(Estoy probando web scraping usando Playwright, pero creo que esta es solo una pregunta general sobre el selector de CSS)

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

0

Esto no es un problema con los selectores css. Es una página cargada dinámicamente, por lo que para obtener su contenido debe realizar una llamada API a

 https://api.coinmarketcap.com/data-api/v3/map/all?listing_status=active,untracked&exchangeAux=is_active,status&cryptoAux=is_active,status&start=10001&limit=10000

Una vez que haces eso, obtienes un json. Para extraer de eso el código de moneda, por ejemplo, necesita

 const obj = JSON.parse(response); curs = obj['data']['cryptoCurrencyMap']

si tu corres

 for (let cur of curs) {console.log(cur['symbol'])}

Deberías obtener bastantes códigos...

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