웹 스크래핑은 인터넷 상의 웹 페이지에서 데이터를 추출하는 프로세스를 말합니다. 이는 자동화된 방식으로 웹 사이트의 정보를 수집하고 분석하는 데에 유용합니다. 채용 정보 추출은 웹 스크래핑을 통해 구인 공고, 회사 정보 등과 같은 채용 관련 정보를 수집하는 것을 의미합니다. 이번 포스트에서는 Python을 사용하여 웹 스크래핑을 통해 채용 정보를 추출하는 방법에 대해 알아보겠습니다.
라이브러리 설치
Python에서 웹 스크래핑을 위해 다양한 라이브러리들이 제공됩니다. 가장 흔히 사용되는 라이브러리로는 requests
, BeautifulSoup
등이 있습니다. 이러한 라이브러리들을 사용하여 웹 페이지에 접근하고 필요한 정보를 추출할 수 있습니다.
pip install requests
pip install beautifulsoup4
웹 페이지에 접근하기
먼저, requests
라이브러리를 사용하여 웹 페이지에 접근하는 방법을 알아봅시다. 아래의 예시 코드는 requests
라이브러리를 사용하여 특정 웹 사이트에 접근하고, 해당 페이지의 HTML을 가져오는 예시입니다.
import requests
url = "https://www.example.com"
response = requests.get(url)
html = response.text
print(html)
HTML 파싱하기
다음으로, BeautifulSoup
라이브러리를 사용하여 HTML을 파싱하는 방법을 살펴봅시다. 이를 통해 웹 페이지에서 필요한 정보를 효과적으로 추출할 수 있습니다.
from bs4 import BeautifulSoup
# 위에서 가져온 html 변수를 사용하여 BeautifulSoup 객체를 생성
soup = BeautifulSoup(html, 'html.parser')
# 원하는 정보가 담겨있는 HTML 요소를 선택
job_titles = soup.select('.job-title')
# 선택한 HTML 요소에서 필요한 정보 추출
for title in job_titles:
print(title.text)
위의 예시 코드에서 select()
메서드는 CSS 선택자를 사용하여 특정 HTML 요소를 선택합니다. text
속성을 통해 해당 요소의 텍스트를 추출할 수 있습니다.
채용 정보 추출하기
웹 페이지에 접근하고 HTML을 파싱하는 방법을 알게되었으니, 이제 이를 활용하여 채용 정보를 추출하는 방법을 살펴봅시다. 웹 사이트마다 HTML 구조가 다를 수 있으므로, 각 사이트에 맞는 채용 정보 추출 방법을 사용해야합니다. 아래의 예시는 특정 웹 사이트에서 채용 공고의 제목과 회사명을 추출하는 예시입니다.
import requests
from bs4 import BeautifulSoup
url = "https://www.example.com/jobs"
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
job_titles = soup.select('.job-title')
company_names = soup.select('.company-name')
for i in range(len(job_titles)):
title = job_titles[i].text.strip()
company = company_names[i].text.strip()
print(f"Title: {title}")
print(f"Company: {company}")
print()
위의 예시 코드에서는 .job-title
과 .company-name
클래스를 가진 HTML 요소를 선택하여 해당 요소의 텍스트를 추출합니다. strip()
메서드를 사용하여 공백을 제거하고, 추출한 정보를 출력합니다.
결론
Python을 사용하여 웹 스크래핑을 통해 채용 정보를 추출하는 방법에 대해 알아보았습니다. requests
라이브러리를 사용하여 웹 페이지에 접근하고, BeautifulSoup
라이브러리를 사용하여 HTML을 파싱하여 필요한 정보를 추출하는 과정을 살펴보았습니다. 이를 응용하여 다양한 웹 사이트에서 채용 정보를 추출할 수 있습니다.