+ 개발

MySQL을 활용한 크롤링 데이터 저장(ft.Python)

AI.Logger 2024. 8. 23. 11:20
  • 수업 내용 리마인드 및 아카이빙 목적의 업로드


 

1. pymysql 설치하기

 

먼저, Python에서 MySQL에 접근하려면 pymysql이라는 라이브러리를 설치해야 해요. 이 라이브러리를 사용하면 Python으로 MySQL 데이터베이스와 쉽게 소통할 수 있어요.

pip install pymysql

 

2. MySQL 데이터베이스에 접속하기

 

이제 MySQL 데이터베이스에 접속해 볼게요. pymysql.connect() 메소드를 사용하면 쉽게 데이터베이스에 연결할 수 있어요. 아래 코드에서 각 인자를 어떻게 설정하는지 볼 수 있어요.

import pymysql

db = pymysql.connect(
    host='localhost',   # 서버 IP 주소 (보통 로컬 서버면 'localhost')
    port=3306,          # 포트 번호 (기본은 3306)
    user='study',       # 사용자 이름
    passwd='study',     # 비밀번호
    db='study',         # 데이터베이스 이름
    charset='utf8'      # 문자 인코딩 (한글 처리를 위해 'utf8' 사용)
)

 

3. Cursor 사용하기

 

cursor는 SQL 쿼리를 실행하고 그 결과를 처리하는 데 쓰여요. cursor.execute()로 SQL 쿼리를 실행하고, cursor.fetchall()로 그 결과를 가져올 수 있어요.

cursor = db.cursor()

# SQL 쿼리 실행 예시
cursor.execute("SELECT * FROM 테이블명")

# 쿼리 결과 가져오기
results = cursor.fetchall()

print(results)  # 결과가 튜플 형태로 반환됩니다.

 

4. 테이블 생성하기

 

이제 데이터를 저장할 테이블을 만들어볼까요? 테이블을 만들려면 SQL 쿼리를 작성하고 cursor.execute()로 실행한 다음, 변경사항을 데이터베이스에 반영하기 위해 db.commit()을 호출해줘야 해요.

cursor = db.cursor()

# 테이블 생성 쿼리 예시
sql = """
CREATE TABLE IF NOT EXISTS 크롤링데이터 (
    id INT AUTO_INCREMENT PRIMARY KEY,
    제목 VARCHAR(255),
    내용 TEXT,
    작성일 DATE
)
"""

cursor.execute(sql)
db.commit()  # 변경사항을 적용합니다.

 

5. 데이터 조회하기

 

저장된 데이터를 확인하고 싶을 때는 SELECT 쿼리를 사용해요. cursor.execute()로 쿼리를 실행한 후, cursor.fetchall()로 결과를 가져올 수 있어요.

cursor = db.cursor()

# 데이터 조회 쿼리 예시
sql = "SELECT * FROM 크롤링데이터"

cursor.execute(sql)
results = cursor.fetchall()

for row in results:
    print(row)

 

6. 데이터 삭제하기

 

필요 없는 데이터를 삭제하려면 DELETE 쿼리를 사용하면 돼요. cursor.execute()로 삭제 쿼리를 실행하고, db.commit()을 호출해 변경사항을 저장하세요.

cursor = db.cursor()

# 데이터 삭제 쿼리 예시
sql = "DELETE FROM 크롤링데이터 WHERE id = 1"

cursor.execute(sql)
db.commit()  # 변경사항을 적용합니다.