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

176
Visualizações
Scrape renderizado dinámicamente por objetos de desplazamiento

Me gustaría raspar la sección de trabajo de Linkedin, por ejemplo el siguiente enlace:

https://www.linkedin.com/jobs/search/?f_TPR=r86400&geoId=105080838&keywords=Full%20Stack&location=New%20York%2C%20United%20States

Como puede ver, tan pronto como se desplaza hacia abajo, la página carga más trabajos.

El efecto que estoy buscando es, quiero de alguna manera obtener una respuesta del sitio después de que se desplazó hasta el final, que contiene todos los trabajos posibles, para analizar usaré cheerio.

Lo que logré hacer usando js y nodejs es obtener solo la primera página, pero no más.

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

el primer paso sería obtener la cantidad de trabajos full-stack devueltos de su búsqueda:

número de resultados de trabajo

ahora que conocemos los atributos del elemento, podemos agarrarlo usando cheerio,

 let number_of_jobs = $("h1>small[class='jobs-search-results-list__text']").text()

Ahora, como dijiste,

La forma en que funcionan las publicaciones de trabajo de LinkedIn es cargar más trabajos si se desplaza hacia abajo en la barra del navegador

pero, cuando arrastra la barra varias veces, no se cargará automáticamente, mientras que tendría que hacer clic en un botón que dice 'Ver más trabajos'.

Así que aprovecharemos eso y usaremos un método try / except . La cantidad de trabajos devueltos por nuestra consulta determinará la cantidad de veces que arrastraremos el controlador usando selenium (no podemos usar cheerio aquí ya que es un analizador HTML). También puedes usar titiritero phantomJS .

 let i = 2 while (i <= int(no_of_jobs/25)+1): wd.execute_script(“window.scrollTo(0, document.body.scrollHeight);”) i = i + 1 try: wd.find_element_by_xpath ('/html/body/main/div/section/button').click() time.sleep(5) except: pass time.sleep(5)

Para obtener la lista de trabajos, usaríamos el nombre de la clase: jobs-search-results__list , que es exclusivo de la lista de trabajos, y recorreremos sus elementos li para cada trabajo.

lista de trabajos

de nuevo, usando selenio:

 let jobs_list = wd.find_element_by_class_name('jobs-search__results-list') let jobs = jobs_list.find_elements_by_tag_name('li')

Puede verificar la duración de los jobs y la variable number_of_jobs que configuramos al principio para asegurarse de que obtuvo todo.

Y eso es todo.


Puede usar cualquier API de controlador de cromo con esta lógica, recomendaría titiritero, pero aquí usé selenio ya que lo usó como una etiqueta.

about 4 years ago · Santiago Gelvez 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