[파이썬] 웹 스크래핑과 채용 정보 추출

웹 스크래핑은 인터넷 상의 웹 페이지에서 데이터를 추출하는 프로세스를 말합니다. 이는 자동화된 방식으로 웹 사이트의 정보를 수집하고 분석하는 데에 유용합니다. 채용 정보 추출은 웹 스크래핑을 통해 구인 공고, 회사 정보 등과 같은 채용 관련 정보를 수집하는 것을 의미합니다. 이번 포스트에서는 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을 파싱하여 필요한 정보를 추출하는 과정을 살펴보았습니다. 이를 응용하여 다양한 웹 사이트에서 채용 정보를 추출할 수 있습니다.