Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

260
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!