[파이썬] 웹 스크래핑 루프와 데이터 추출

웹 스크래핑은 인터넷에서 데이터를 수집하고 추출하는 프로세스입니다. 파이썬은 웹 스크래핑을 위한 강력한 도구들을 제공하며, 이를 활용하여 웹 상의 다양한 정보들을 수집할 수 있습니다.

이번 포스트에서는 웹 스크래핑을 위한 루프(loop)를 작성하고, 파이썬을 사용하여 데이터를 추출하는 방법을 알아보겠습니다.

루프를 사용한 웹 스크래핑

웹 사이트의 정보를 수집하기 위해서는 여러 페이지의 데이터를 반복적으로 스크래핑해야 할 수도 있습니다. 이때 루프(loop)를 사용하면 효율적으로 데이터를 수집할 수 있습니다.

import requests
from bs4 import BeautifulSoup

# 스크래핑할 웹 사이트의 URL
url = 'https://example.com'

# 데이터를 저장할 리스트
data_list = []

# 5개의 페이지를 스크래핑하는 루프
for page in range(1, 6):
    # 페이지 URL
    page_url = url + '/page/' + str(page)

    # 페이지에 접속하여 HTML 데이터 가져오기
    response = requests.get(page_url)
    html = response.text

    # BeautifulSoup을 사용하여 데이터 추출
    soup = BeautifulSoup(html, 'html.parser')

    # 데이터 추출 로직 작성
    # ...

    # 추출한 데이터를 리스트에 추가
    data_list.append(data)

# 스크래핑한 데이터 출력
for data in data_list:
    print(data)

위 코드에서는 페이지마다 데이터를 스크래핑하기 위해 for 루프를 사용합니다. range(1, 6)은 1부터 5까지의 페이지를 순서대로 스크래핑한다는 의미입니다. 각 페이지마다 스크래핑한 데이터를 data_list 리스트에 추가하고, 마지막에 리스트의 내용을 출력합니다.

데이터 추출

웹 페이지에서 데이터를 추출하기 위해 BeautifulSoup 라이브러리를 사용할 수 있습니다. BeautifulSoup은 HTML 또는 XML 데이터를 파이썬에서 사용하기 쉬운 형태로 변환해 줍니다.

from bs4 import BeautifulSoup

html = '''
<html>
<head><title>웹 스크래핑</title></head>
<body>
    <h1>웹 스크래핑 예시</h1>
    <ul>
        <li>데이터1</li>
        <li>데이터2</li>
        <li>데이터3</li>
    </ul>
</body>
</html>
'''

# BeautifulSoup을 사용하여 데이터 추출
soup = BeautifulSoup(html, 'html.parser')

# h1 태그의 텍스트 추출
title = soup.find('h1').text

# ul 태그의 li 태그들의 텍스트 추출
li_tags = soup.find('ul').find_all('li')
data_list = [li.text for li in li_tags]

# 추출한 데이터 출력
print('Title:', title)
print('Data List:', data_list)

위 코드에서는 BeautifulSoup 클래스를 사용하여 html 문자열을 파싱합니다. find 메서드를 사용하여 특정 태그를 찾고, text 속성을 사용하여 태그의 텍스트를 추출합니다. find_all 메서드를 사용하면 해당 태그의 모든 인스턴스를 찾을 수 있습니다.

이제 웹 스크래핑을 위한 루프와 데이터 추출에 대해 알아보았습니다. 파이썬을 사용하여 웹 상의 다양한 정보들을 수집하고 활용할 수 있습니다.