-
Extract jobs from Stack OverflowProject using python/Jobs scrapper 2020. 12. 21. 11:49
scrapperSO.py
import requests from bs4 import BeautifulSoup def extract_job(html): # title, company, location, link title_link = html.find('h2').find('a',{'class':'s-link'}) title = title_link['title'] link = f"https://stackoverflow.com/jobs/{title_link['href']}" company, location = html.find('h3', {"class":"fs-body1"}).find_all('span', recursive=False) return { "title" : title, "link" : link, "company" : company.get_text(strip=True), "location" : location.get_text(strip=True) } def extract_jobs(last_page,url): jobs=[] for page in range(last_page): result = requests.get(f"{url}&pg={page+1}") soup = BeautifulSoup(result.text, "html.parser") results = soup.find_all("div",{"class":"-job"}) for result in results: job = extract_job(result) jobs.append(job) return jobs def get_SOJobs(word): url = f"https://stackoverflow.com/jobs?q={word}" last_page = get_last_page(url) jobs = extract_jobs(last_page, url) return jobs
Stack Overflow의 내가 검색한 language에 대한 마지막 페이지를 구했다면 url과 같이 extract_jobs에 넘겨준다. extract_jobs()는 페이지당 일자리를 모두 scrap 한다. extract_job()에서는 회사의 {title, company link, company name, location}을 구하고 반환한다.
scrapperJobs.py
from scrapperSO import get_SOJobs jobs = get_SOJobs("python") print(jobs)
scrapperJobs에서 일자리 사이트에서 모든 일자리를 구할 것이다. SO외에도 remoteok.io와 weworkremotely에서도 일자리를 구할 것이다.
참고 자료
소스 코드
github.com/zpskek/web_scraper-v2/commit/98c20b819f7ab6e722c60741216a11e9c460ef37
'Project using python > Jobs scrapper' 카테고리의 다른 글
Scrap remote.com (0) 2020.12.21 Scrap WeWorkRemotely (0) 2020.12.21 get_last_page of Stack Overflow (0) 2020.12.21 Job scrapper Intro (0) 2020.12.21 Python BeautifulSoup (0) 2020.12.21