먼저, 설치된 DB가 잘 작동하는지 확인. 크롬 창에 localhost:27017 쳤을 대 아래와 같이 나오면 mongoDB가 돌아가고 있다는 것.
mongoDB라는 프로그램은 눈으로 볼 수 없다. 그래픽 인터페이스(GUI)를 제공하지 않기 때문이다.
데이터를 저장했는데 눈으로 보기 위해선 DB내부를 살펴보기 위한 프로그램을 따로 설치한다.
그것이 바로 robo3T
지금은 System, config 외엔 아무것도 없다.
데이터를 넣으면 아래처럼 보이게 됨.
데이터베이스는 데이터를 잘 갔다 쓰려고 사용하는 것이다
Database에는 크게 두 가지 종류가 있음
엑셀에 좀 가깝다
예로 연락처 만들 때, '이름', '번호' 등으로 카테고리로 나뉘어서 저장되고, 데이터가 없으면 공란으로 두고 써내려간다.
SQL
:만명의 회원 정보를 가지고 있었는데 다음 회원부턴 집주소를 넣는다고 가정한다면, 10001번째부터 집주소있고 그 위로는 공란이게 됨. 불편할 수도 있지만 정형화된 데이터를 뽑기에는 최적화가 되어 있어 편하다.
반면 No-SQL
:그런거 신경쓸 필요가 없어서 초기 스타트업 또는 초기 서비스에서 많이 채택되는 이유다.
카테고리 없이 데이터가 저장됨
pymongo 패키지 설치
pymongo 라이브러리의 역할
pymongo 기본 코드
insert / find / update / delete 를 알아두자!
pymongo(insert)
pymongo(find)
나이가 같은 사람을 찾아라
id:False는 뒤에 나오는 id값을 안 보이게 하는 코드
리스트 형태로 여러개 가져올 때, find 앞 값을 빈칸으로 두자
pymongo(find_one)
pymongo(update_one)
name이 bob을 찾아서 age를 19로 바꿔라
pymongo(delete_one)
시작
기본 세팅
도큐먼트(doc) 만들어서 하나씩 insert 하기
이렇게 만들기
정담:
정담:
다른 애들이 다 문자열이기 때문에
숫자대신 문자열로: 0대신 '0'을 쓰는 이유
(숫자로 찾으면 문자열로 된 애들 안나오기 때문이기도 하다)
정답:
(4) 지니뮤직 1~50위
순위 / 곡 제목 / 가수를 스크래핑 하기
https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1
정답:
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in trs:
title = tr.select_one('td.info > a.title.ellipsis').text.strip()
rank = tr.select_one('td.number').text[0:2].strip()
artist = tr.select_one('td.info > a.artist.ellipsis').text
print(rank, title, artist)
힌트: 문자열 자르기
rank의 공백 지우기 위해 쓴 코드