Created
November 8, 2022 16:21
-
-
Save juanifioren/d5d8cc4784165320555a43338b17b0a2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
from selenium import webdriver | |
from selenium.webdriver.common.by import By | |
driver = webdriver.Chrome() | |
# Primero loguearme. | |
# url = 'https://www.linkedin.com/login/es | |
driver.get("https://github.com/login") | |
# Buscar usuario | |
driver.find_element_by_id("username").send_keys('username') | |
# Buscar contraseña. | |
driver.find_element_by_id("password").send_keys('password') | |
# Click | |
driver.find_element(By.CSS_SELECTOR, 'button[data-litms-control-urn="login-submit"]').click() | |
driver.implicitly_wait(3) | |
url= 'https://www.linkedin.com/jobs/search?keywords=software&location=Estados%20Unidos&geoId=103644278&trk=public_jobs_jobs-search-bar_search-submit&position=1&pageNum=0' | |
driver.get(url) | |
driver.implicitly_wait(3) | |
ult_altura = driver.execute_script("return document.body.scrollHeight") | |
while True: | |
# Ir al fondo de la pagina. | |
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") | |
# Esperar a que carguen los jobs. | |
time.sleep(2) | |
# Gardar la ultima altura de la pagina, si es la misma frenar (porque tocamos fondo) sino seguimos bajando. | |
nueva_altura = driver.execute_script("return document.body.scrollHeight") | |
if nueva_altura == ult_altura: | |
break | |
ult_altura = nueva_altura | |
driver.implicitly_wait(3) | |
# Busca la clase ".jobs-search__results-list" | |
# Dentro de esa clase buscame todos los tags <li> | |
# Dentro de cada <li> buscame buscame un <a> | |
jobs = [] | |
for element in driver.find_elements(By.CSS_SELECTOR, '.jobs-search__results-list li div.base-card'): | |
data = {} | |
data['titulo'] = element.find_element(By.CSS_SELECTOR, 'div.base-search-card__info h3.base-search-card__title').text | |
data['compania'] = element.find_element(By.CSS_SELECTOR, 'div.base-search-card__info h4.base-search-card__subtitle').text | |
data['location'] = element.find_element(By.CSS_SELECTOR, 'div.base-search-card__info span.job-search-card__location').text | |
data['url'] = element.find_element(By.CSS_SELECTOR, 'a.base-card__full-link').get_attribute('href') | |
jobs.append(data) | |
for job in jobs: | |
time.sleep(3) | |
driver.get(job['url']) | |
driver.implicitly_wait(3) | |
job['aplicantes'] = driver.find_element(By.CSS_SELECTOR, 'h4.top-card-layout__second-subline .num-applicants__caption').text | |
print(jobs) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment