티스토리 뷰

반응형

파이썬을 이용한 웹 크롤링

웹 크롤링(Web Crawling)은 인터넷 상의 웹 페이지를 자동으로 탐색하고 데이터를 추출하는 작업을 의미합니다. 이는 데이터 수집, 분석, 웹 아카이빙 등 다양한 용도로 사용될 수 있습니다. 이 글에서는 파이썬을 이용한 웹 크롤링에 대해 알아보겠습니다.

1. 웹 크롤링이란?

웹 크롤링은 특정 웹사이트나 여러 웹사이트의 데이터를 자동으로 수집하는 기술입니다. 검색 엔진의 웹 크롤러가 대표적인 예로, 이들은 인터넷을 탐색하여 웹 페이지의 내용을 색인합니다. 웹 크롤링을 통해 대규모의 데이터를 수집하고 분석할 수 있어, 많은 기업과 연구기관에서 활용하고 있습니다.

2. requests 및 BeautifulSoup?

파이썬에서는 웹 크롤링을 쉽게 할 수 있도록 도와주는 여러 라이브러리가 있습니다. 그 중 가장 널리 사용되는 두 가지는 requests와 BeautifulSoup입니다.

  • requests: HTTP 요청을 보내고 응답을 받을 수 있게 해주는 간단한 라이브러리입니다.
  • BeautifulSoup: HTML과 XML 문서를 파싱하고, 원하는 데이터를 쉽게 추출할 수 있도록 도와주는 라이브러리입니다.

3. requests 모듈 설치 방법

requests 모듈을 설치하려면 파이썬의 패키지 관리자(pip)를 사용합니다. 터미널이나 명령 프롬프트에서 다음 명령어를 입력하여 설치할 수 있습니다.


pip install requests

4. requests 기본 웹 크롤링 예제

아래는 requests 모듈을 사용하여 웹 페이지의 HTML 코드를 가져오는 간단한 예제입니다.


import requests

# 웹 페이지 URL
url = 'http://example.com'

# HTTP GET 요청
response = requests.get(url)

# 응답 상태 코드 확인
if response.status_code == 200:
    # HTML 코드 출력
    print(response.text)
else:
    print(f'Failed to retrieve page. Status code: {response.status_code}')
 

이 코드는 HTTP GET 요청을 보내고, 응답으로 받은 HTML 코드를 출력합니다.

5. BeautifulSoup 모듈 설치 방법

BeautifulSoup 모듈 역시 pip를 사용하여 설치할 수 있습니다. 터미널이나 명령 프롬프트에서 다음 명령어를 입력하여 설치합니다.


 
pip install beautifulsoup4

 

또한, HTML 파싱을 위해 lxml 또는 html5lib 파서도 설치할 수 있습니다.


 
pip install lxml html5lib

6. BeautifulSoup 기본 웹 크롤링 예제

아래는 requests와 BeautifulSoup를 함께 사용하여 웹 페이지에서 원하는 데이터를 추출하는 예제입니다.


import requests

# 웹 페이지 URL
url = 'http://example.com'

# HTTP GET 요청
response = requests.get(url)

# 응답 상태 코드 확인
if response.status_code == 200:
    # HTML 코드 출력
    print(response.text)
else:
    print(f'Failed to retrieve page. Status code: {response.status_code}')

 

이 코드는 requests 모듈을 사용하여 웹 페이지의 HTML 코드를 가져오고, BeautifulSoup을 사용하여 HTML 코드를 파싱한 후, 모든 <h1> 태그의 텍스트를 추출하여 출력합니다.

이와 같이 requests와 BeautifulSoup을 조합하면 다양한 웹 페이지에서 손쉽게 데이터를 추출할 수 있습니다. 이 기본적인 방법을 응용하여 더욱 복잡한 웹 크롤링 작업을 수행할 수 있습니다.

반응형