[파이썬] requests-html 사용 사례: 직업 사이트 스크레이핑

지금은 취업시장에서 경쟁이 치열하다. 많은 사람들이 더 좋은 직장을 찾기 위해 많은 시간과 노력을 투자하고 있다. 이때, 인터넷의 직업 사이트들은 유용한 정보와 많은 채용 공고를 제공한다. 그러나 매번 직업 사이트를 방문해서 원하는 정보를 찾는 것은 매우 번거롭고 시간이 많이 소요된다.

이런 문제를 해결하기 위해 웹 스크레이핑을 사용할 수 있다. 웹 스크레이핑은 웹 페이지에서 데이터를 추출하는 기술로, 직업 사이트를 자동으로 탐색하고 원하는 정보를 수집하는 데 사용할 수 있다. 이번 블로그 글에서는 파이썬 라이브러리인 requests-html을 사용하여 직업 사이트 스크레이핑을 수행하는 방법을 알아보겠다.

requests-html 소개

requests-html은 웹 페이지를 가져오고 파싱하는 데 사용되는 간단하고 유연한 라이브러리이다. requests-html을 사용하면 JavaScript가 실행되는 페이지에서도 데이터를 추출할 수 있다. 이러한 특징은 직업 사이트 스크레이핑에 매우 유용하다.

requests-html을 설치하려면 터미널에서 다음 명령을 실행한다:

pip install requests-html

직업 사이트 스크레이핑 예제

이제 requests-html을 사용하여 실제 직업 사이트에서 데이터를 추출하는 예제를 살펴보자. 예제로는 인기 있는 직업 사이트 중 하나인 Indeed (https://www.indeed.com)를 사용할 것이다. Indeed는 채용 공고를 제공하는 세계적인 플랫폼이다.

먼저, requests-html을 가져온다:

from requests_html import HTMLSession

그리고 Indeed에서 “python”으로 검색한 결과 페이지를 가져오기 위해 다음 코드를 실행한다:

session = HTMLSession()
url = "https://www.indeed.com/jobs?q=python"
response = session.get(url)

위의 코드는 HTMLSession 객체를 생성한 후 해당 직업 사이트의 URL을 지정하여 get 메서드를 호출한다. 이렇게 하면 해당 URL에 대한 응답이 가져와진다.

이제 응답에서 원하는 정보를 추출해보자. 예를 들어, 채용 공고의 제목과 회사 이름을 추출해보자:

jobs = response.html.find(".jobtitle")
companies = response.html.find(".company")

위의 코드는 .jobtitle 클래스에 해당하는 요소와 .company 클래스에 해당하는 요소를 응답에서 추출한다. 이렇게하면 채용 공고의 제목과 회사 이름이 각각 jobscompanies 리스트에 저장된다.

마지막으로, 추출한 정보를 출력해보자:

for job, company in zip(jobs, companies):
    print(job.text, "-", company.text)

위의 코드는 zip 함수를 사용하여 jobscompanies 리스트를 병렬로 반복하고, 각각의 채용 공고의 제목과 회사 이름을 출력한다.

이제 당신은 requests-html을 사용하여 직업 사이트를 스크레이핑하는 방법을 알게 되었다. 이러한 기술을 사용하여 특정 직종, 지역 또는 기타 요구 사항에 대한 최신 채용 공고를 자동으로 확인하고, 필요한 정보를 수집할 수 있다. 이를 통해 취업 활동을 보다 효율적으로 수행할 수 있게 된다.

참고: 스크레이핑을 수행할 때에는 해당 사이트의 이용 약관과 저작권 법을 준수해야 한다. 저작권과 개인정보 보호에 대한 법률과 정책을 숙지하고, 실제로 스크레이핑을 수행하기 전에 합법적인 수단을 사용하는지 확인해야 한다.

결론

이 블로그 글에서는 requests-html을 사용하여 직업 사이트 스크레이핑을 수행하는 방법을 알아보았다. requests-html은 직업 사이트에서 데이터를 추출하기 위한 강력하고 유연한 도구로 사용될 수 있다. 스크레이핑을 통해 채용 공고와 같은 유용한 정보를 자동으로 수집하고, 취업 활동을 간편하게 진행할 수 있다.

많은 직업 사이트들이 스크레이핑을 방지하기 위해 캡차나 IP 차단 등의 명령을 사용할 수 있다. 이러한 경우에는 스크레이핑을 어렵게 만들 수 있다. 따라서 스크레이핑을 시도하기 전에 해당 사이트의 정책과 이용 약관을 확인하는 것이 중요하다.