웹 스크래핑은 인터넷에서 데이터를 수집하고 추출하는 프로세스입니다. 파이썬은 웹 스크래핑을 위한 강력한 도구들을 제공하며, 이를 활용하여 웹 상의 다양한 정보들을 수집할 수 있습니다.
이번 포스트에서는 웹 스크래핑을 위한 루프(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
메서드를 사용하면 해당 태그의 모든 인스턴스를 찾을 수 있습니다.
이제 웹 스크래핑을 위한 루프와 데이터 추출에 대해 알아보았습니다. 파이썬을 사용하여 웹 상의 다양한 정보들을 수집하고 활용할 수 있습니다.