배운 것!
파이썬을 열어보고, 스크래핑을 배워보고, 그 데이터들을 DB에 저장하고 다루는 것까지 배워 본 3주차
복습하기 - 스크래핑
https://chaeyami.tistory.com/12
3주차 중간 (9강) 까지 듣고 연습겸 이 포스팅을 했는데, 나중에 알고보니 3주차 숙제랑 주제가 겹치더라..!
복습하기 - DB
DB를 사용하는 이유
정리를 잘 해야 쉽고 빠르게 찾는다! 그래야 나중에 사용할 때 편하다!
DB 종류
정보처리기사 공부할 때 열심히 외웠던 것들인데 이렇게 보니까 그렇게 딱딱한 건 아니었네 싶다... 그 떈 진짜 재미 없었는데
RDBMS - 관계형 데이터베이스 관리 시스템
관계형 데이터베이스! 라고 공부했었는데, 행렬이 정해진 엑셀과 유사하다! 라고 쉽게 알려주셨다. 역시멋져
ex) MySQL
, PostgreSQL
, MariaDB
, Microsoft SQL Server
, Oracle Database
등
No-SQL
이거 약자는 아직도 기억난다... Not Only SQL 고정된 스키마가 필요없고 조인 사용이 불가하며 수평적으로 확장이 가능한 DBMS 뭐 이렇게 외웠었다...
약술형 나오기 쉽다길래 달달 외웠었는데 ... 뭐 특성도 있고 종류도 있고... 이정도면 트라우마 아니냐고...
그냥 쉽게 딕셔너리 형태로 데이터를 저장하는 DB라고 알려주셨다. 자유로운 데이터 적재가 가능하다!
우리가 사용할 MongoDB
가 이 중 하나!
mongoDB 연결하기
가입하고, 연습용 db를 만들었다!
파이썬에 패키지 설치
만든 걸 파이썬에서 쓰기 위해서 늘 그렇듯 패키지 설치!
pip install pymongo
pip install dnspython
from pymongo import MongoClient
client = MongoClient('URL') # 내 db에서 복사해 온 url
db = client.dbsparta
DB 조작하기
DB 조작 문법 정리
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
스크래핑한 정보 DB에 저장하기
전에 스크래핑 연습으로 가져왔던 데이터를 DB에 저장하는 방법도 배웠다.
별 거 없다 스크래핑 코드 위에
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.55vah.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
얘만 추가해주고, for
문 안쪽 print
대신에 DB에 데이터 추가하는 코드(아래 코드)를 입력해주면 끝!
doc = {
'title':title,
'rank':rank,
'ratings':ratings
}
db.movies.insert_one(doc)
그리고 스크래핑한 결과를 골라서 가져오는 연습까지 하고 3주차는 신나게 마무리되었다!
3주차 숙제
3주차가 끝나고 숙제를 보니 지니뮤직의 1~50위 곡을 스크래핑 해보세요...!
연습 주제야 다들 비슷한 건 알았지만 내 복습과 숙제가 이렇게 겹치다니... (두근)
숙제니까 코드를 따로 올리진 않겠지만 매 주차 숙제로 강의내용을 정리&복습할 수 있어서 너무 좋다.
강의 자료를 통해 숙제 해설도 다 올려주시니까, 혹시라도 못한다고 어렵다고 겁먹을 필요 전혀 없을 것 같다.
이제 다음 4주차로 신나게 간당
GitHub 댓글