본문 바로가기
기록/스파르타내일배움단 개발일지

파이썬 라이브러리와 mongoDB를 배우다

by stilinski 2022. 3. 14.
728x90

 

request 라이브러리

ajax랑 비슷한 거 같다.

 

 

 

 

 

 

웹스크래핑!(크롤링)

크롤링에서 중요한 두 가지

1. 요청하는 거(코드단에서   request 이용

2. 원하는 정보를 잘 솎아내는 것 beautifulsoup 이용

 

 

스크래핑 성공

좌 내가한거 우 정답

특정 키의 값을 불러올떈 ['']

 

a_tag 변수로 따로 넣어놔서 나도 다른 거 변수로 넣었는데 튜터님은 그렇게 안 했다.

언제 변수 지정하고 언제 안 하는 거지,,?ㅋㅋ

저렇게 딱 봐도 뭔지 알겠을 때는 지정 안 해도 되는 건가?

그럼 a_tag는 왜 한 거지

 

 

 

 

 

mongoDB

 

mongoDB 데이터를 쌓아두는 곳

데이터들은 눈에 보이지 않게 켜짐

로보 3T가 볼 수 있게 해 줌

 

robo 3T는 mongoDB의 데이러를 보려고 쓰는 것

 

 

데이터베이스 역할과 종류

데이터베이스 왜 쓸까 - 데이터를 잘 가져다 쓰려고

 

SQL & NoSQL(Not Only SQL)

SQL - 엑셀에 가까움 일관성 있음

종류 - MS-SQL, MT-SQL, 오라클

 

NoSQL - 딕셔너리 형태 ex) 어떤 딕셔너리에는 이메일 항목이 있고 어떤 거엔 없고,,, 그런 일관성 부족

스타트업에서 많이 씀

종류 - MongoDB

 

 

 

 

pymongo 라이브러리

파이썬으로 몽고디비를 조작할 수 있게 해 줌

# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})

# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
same_ages = list(db.users.find({'age':21},{'_id':False}))

# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

# 지우기 - 예시
db.users.delete_one({'name':'bobby'})

 

update many도 있는데 잘못된 걸로 다 바꾸게 되면 위험해서 one을 더 많이 씀

 

delete one 많이 안 씀

 

 

 

웹 스크래핑 QUIZ

1. 매트릭스 평점 가져오기

2. 매트릭스 평점과 같은 평점의 영화 제목들만 가져오기

 

1은 콜렉션 이름 안 바꿔서 잠깐 헤맨 거 빼고는 그럭저럭 했는데

2에서 방황했다.

1번에서 했던 게 2번에서는 안 통하는 것이다.

 

 

알고 보니 1번에서는 딕셔너리 안에 값이 바로 들어가 있어서 바로 원하는 값을 불러내는 게 가능했지만

 

 

2번에서는 리스트 안에 딕셔너리안에 내가 원하는 값이 있었기 때문에 리스트안에서 'title' 찾아달라고 주구장창 찍어도 안됐던 것이다. 리스트안에 딕셔너리 안에 있는 타이틀을 가져와달라고 명령을 했어야 했다.

정답

그래서 반복분으로 딕셔너리를 하나하나 불러와서 그 안에 있는 타이틀을 불러오게 했더니 퀴즈를 풀 수 있게 되었다.

후,,,

 

 

사실 수업에서 했지만 그때는 그냥 따라 쳐 보기만 했지

직접 해보니 왜 그렇게 해야는지 알게 되었다.

 

728x90

댓글