본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 웹 스크래핑하기: 데이터 저장 방법

by 포탈메이커 2023. 7. 17.

파이썬으로 웹 스크래핑하기: 데이터 저장 방법

웹 스크래핑은 파이썬을 이용하여 웹 사이트로부터 원하는 데이터를 추출하는 과정입니다. 이번 포스팅에서는 웹 스크래핑한 데이터를 저장하는 다양한 방법에 대해 알아보겠습니다.

1. 텍스트 파일로 저장하기

가장 간단한 방법은 스크래핑한 데이터를 텍스트 파일에 저장하는 것입니다. 텍스트 파일은 일반적으로 .txt 확장자를 가지며, 스크래핑한 데이터를 한 줄에 하나씩 저장할 수 있습니다. 이는 open() 함수와 write() 메서드를 이용하여 구현할 수 있습니다.

python with open('data.txt', 'w', encoding='utf-8') as file: for data in scraped_data: file.write(data + '\n')

위의 코드에서 data.txt는 저장할 텍스트 파일의 이름입니다. w 모드를 사용하여 파일을 쓰기 모드로 열고, write() 메서드를 통해 각 데이터를 파일에 쓰고 줄바꿈을 추가합니다.

2. CSV 파일로 저장하기

CSV 파일은 데이터를 쉼표로 구분하여 저장하는 형식입니다. 파이썬에서는 내장 모듈인 csv를 활용하여 스크래핑한 데이터를 CSV 파일로 저장할 수 있습니다.

```python import csv

with open('data.csv', 'w', encoding='utf-8', newline='') as file: writer = csv.writer(file) for data in scraped_data: writer.writerow([data]) ```

위의 코드에서 data.csv는 저장할 CSV 파일의 이름입니다. csv.writer() 함수를 이용하여 writer 객체를 생성하고, writer.writerow() 메서드를 통해 데이터를 한 줄씩 파일에 저장합니다. 각 데이터는 리스트 형태로 전달되어야 합니다.

3. JSON 파일로 저장하기

JSON 파일은 데이터를 키-값 쌍으로 저장하는 형식입니다. 파이썬에서는 내장 모듈인 json을 활용하여 스크래핑한 데이터를 JSON 파일로 저장할 수 있습니다.

```python import json

data = { 'scrapeddata': scrapeddata }

with open('data.json', 'w', encoding='utf-8') as file: json.dump(data, file, ensure_ascii=False, indent=4) ```

위의 코드에서 data.json은 저장할 JSON 파일의 이름입니다. json.dump() 함수를 이용하여 데이터를 JSON 파일에 저장합니다. ensure_ascii=False 인자를 사용하면 한글 데이터도 정상적으로 저장됩니다. indent 인자를 사용하여 JSON 파일을 보기 좋게 포맷팅할 수 있습니다.

4. 데이터베이스에 저장하기

스크래핑한 데이터를 영구적으로 저장하기 위해 데이터베이스를 사용할 수도 있습니다. 파이썬에서는 다양한 데이터베이스를 지원하는 라이브러리를 제공하고 있으며, 가장 많이 사용되는 라이브러리는 sqlite3, MySQLdb, psycopg2 등이 있습니다.

```python import sqlite3

conn = sqlite3.connect('data.db') c = conn.cursor() c.execute('CREATE TABLE scraped_data (data text)')

for data in scrapeddata: c.execute(f'INSERT INTO scrapeddata VALUES ("{data}")')

conn.commit() conn.close() ```

위의 코드에서 data.db는 데이터베이스 파일의 이름입니다. sqlite3.connect() 함수를 이용하여 데이터베이스에 연결하고, c.execute() 메서드를 통해 SQL 문을 실행합니다. 생성한 테이블에 데이터를 추가하기 위해서는 INSERT INTO 문을 사용하여 데이터를 저장할 수 있습니다. 마지막으로 commit() 메서드를 호출하여 데이터베이스에 변경 사항을 저장하고, close() 메서드를 호출하여 연결을 종료합니다.

웹 스크래핑을 통해 얻은 데이터를 저장하는 방법은 다양하며, 텍스트 파일, CSV 파일, JSON 파일, 데이터베이스 등 다양한 방식으로 저장할 수 있습니다. 각각의 방법은 데이터의 형식과 용도에 따라 선택하여 사용하면 됩니다.