Для установки селена перейдите по этой ссылке
import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
url = "http://elempleo.com/cr/ofertas-empleo/"
Примечание: вам нужно скачать подходящий драйвер браузера по этой ссылке и добавить его путь к системной переменной среды
# here I am using chrome webdriver
# setting up selenium
driver = webdriver.Chrome(executable_path=r"F:\Projects\sms_automation\chromedriver.exe") # initialize webdriver instance
driver.get(url) # open URL in browser
driver.find_element_by_id("ResultsByPage").send_keys('100') # set items per page to 100
time.sleep(5)
soup = BeautifulSoup(driver.page_source, "html.parser")
url_set = ["http://elempleo.com"+i.get("href") for i in soup.select(".text-ellipsis")]
while True:
try:
driver.find_element_by_class_name("js-btn-next").click() # go to next page
time.sleep(3)
soup = BeautifulSoup(driver.page_source, "html.parser")
current_page_url = ["http://elempleo.com"+i.get("href") for i in soup.select(".text-ellipsis")]
if url_set[-1] == current_page_url[-1]:
break
url_set += current_page_url
except WebDriverException:
time.sleep(5)
Результат:
print(len(url_set)) # outputs 2641
print(url_set) # outputs ['http://elempleo.comhttp://www.elempleo.com/cr/ofertas-trabajo/analista-de-sistemas-financieros/753845', 'http://elempleo.comhttp://www.elempleo.com/cr/ofertas-trabajo/balance-sheet-and-cash-flow-specialist/755211', 'http://elempleo.comhttp://www.elempleo.com/cr/ofertas-trabajo/coordinador-de-compensacion/757369', 'http://elempleo.comhttp://www.elempleo.com/cr/ofertas-trabajo/gerente-de-agronomia/757368', 'http://elempleo.comhttp://www.elempleo.com/cr/ofertas-trabajo/responsable-de-capacitacion-y-desempeno/757367', 'http://elempleo.comhttp://www.elempleo.com/cr/ofertas-trabajo/pmp-gestor-de-proyectos/757366', ....]