-
파이썬 독학 9일차 BeautifulSoup(웹 파싱하기, 스크래핑) 3coding 2022. 9. 9. 00:00728x90반응형SMALL
이번 포스팅에선 아래의
weworkremotely.com사이트의 python 개발자를 구인하는 회사들을 스크래핑 해볼 것이다.
회사의 이름, 근무시간, 지역 등을 가져온다.
beautiful soup의 강력한 기능들을 사용해서 간단하게 코딩했다.
#웹을 가져오기 위해 requests의 get을 임포트 from requests import get #beautifulsoup 사용을 위해 임포트 from bs4 import BeautifulSoup base_url = "https://weworkremotely.com/remote-jobs/search?utf8=%E2%9C%93&term=" search_term = "python" #나중에 url과 검색어를 변경하여 재사용할 수 있게 f문자열 포매팅 response = get(f"{base_url}+{search_term}") #웹사이트에서 정상적인 응답(200)을 주지 않을때를 대비 if not response.status_code == 200: print("Can't request website") #정상이라면 페이지의 html 코드를 쫙 긁어 옴 else: #print(response.text) soup = BeautifulSoup(response.text, 'html.parser') #section의 jobs클래스 리스트를 만들어주자 jobs = soup.find_all('section', class_="jobs") for job_section in jobs: job_posts = job_section.find_all('li') #viewlall제거 job_posts.pop(-1) for post in job_posts: anchors = post.find_all('a') anchor = anchors[1] #list의 길이(len)을 알고 있다면 item들의 순서에 맞춰 변수명을 넣어줄 수 있음 company_name, shift, region = anchor.find_all('span', class_="company") link = anchor['href'] #find_all은 항상 list를 주기 때문에 title하나만 원해서 .find title = anchor.find('span', class_="title") print(company_name, shift, region, title) print("🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸🔸")
위의 OpenCraft회사, 풀타임 근무, 근무지는 지구, 시니어 오픈소스 개발자를 모집하는 내용을 파싱해왔다.
이를 엑셀에 저장하거나 따로 모아서 볼 수 있게 되었다.
다음 포스팅엔 <span class="blahblach> </span>과 같이 지저분한 html을 제거하고
OpenCraft, Full-Time, Anywhere in the World, Senior Open Source Developer만 출력하여
가독성을 높이는 것을 배워보겠다.
728x90반응형LIST'coding' 카테고리의 다른 글
파이썬 독학 11일차 BeautifulSoup(웹 파싱하기, 스크래핑) 5 (0) 2022.09.11 파이썬 독학 10일차 BeautifulSoup(웹 파싱하기, 스크래핑) 4 (0) 2022.09.10 파이썬 독학 8일차 keyword argument 순서 상관없이 지정 (0) 2022.09.08 파이썬 독학 7일차 BeautifulSoup(웹 파싱하기, 스크래핑) 2 (0) 2022.09.07 파이썬 독학 6일차 웹 스크래핑, 파싱(beautiful soup) 1 (0) 2022.09.06