๋ฐ์ํ
- pymongo ๋ผ๋ ๋ผ์ด๋ธ๋ฒ๋ฆฌ๋ก mongoDB๋ฅผ ์กฐ์ํ๋ค.
- pymongo ๊ธฐ๋ณธ ์ฝ๋
- insert
- find
- update
- delete
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
Insert
doc = {'name':'bobby', 'age':21}
db.users.insert_one(doc)
- db = client.dbsparta
- bsparta๋ผ๋ ๋๋น์ ์ ์ํ๋ค, ์์ผ๋ฉด ์์ฑํ๋ค.
* ์ฝ๋๋ฅผ ์ ์ฅํ๊ณ , Roto 3T์ ๋ค์ด๊ฐ์ ์๋ก๊ณ ์นจํ๋ฉด
find
- {}๋น ์ฑ๋ก ๋๋ฉด ๋ชจ๋ ๊ฐ์ ธ์จ๋ค.
#find
same_ages = list(db.users.find({'age':32},{'_id':False}))
for personin same_ages:
print(person)
- ์ฌ๋ฌ ๊ฐ๊ฐ ๊ฒ์๋ ๋, ๊ฐ์ฅ ์์ ํ๊ฐ์ง๋ง ๊ฐ์ ธ์จ๋ค. _id์์ฑ์ ํ์งํ์ง ์๋๋ค.
user = db.users.find_one({'age':32},{'_id': False})
print(user)
update
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
- {'name':'bobby'} ์ ํด๋นํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๊พผ๋ค.
- update_many๋ ์์ผ๋, ์ํํ๊ธฐ ๋๋ฌธ์ ์ ์ฐ์ง ์์
delete
db.users.delete_one({'name':'bobby'})
- delete_many ๋ ์์ผ๋, ์ํํ๊ธฐ ๋๋ฌธ์ ์ ์ฐ์ง ์์
Quiz. (์น ํฌ๋กค๋ง ์๊ฐ์ ๋ฐฐ์ด ํ์ด์ฌ ํ์ผ์ ํ์ฉ)
- ์ํ ๋งคํธ๋ฆญ์ค์ ํ์ ์ ์ฅ
movie=db.find_one({'title':'๋งคํธ๋ฆญ์ค'},{'_id':False})
same_point=movie['point']
2. ๋งคํธ๋ฆญ์ค์ ํ์ ๊ณผ ๊ฐ์ ์ํ์ ๋ชฉ ์ ์ฅ
same_movies=db.find({'point':same_point},{'_id':False})
for same in same_movies:
print(same['title'])
3. ๋งคํธ๋ฆญ์ค์ ํ์ ์ 0์ผ๋ก ๋ง๋ค๊ธฐ
db.update_one({'title':'๋งคํธ๋ฆญ์ค'},{'$set':{'point':0}})
- robo 3T์์ ๋งคํธ๋ฆญ์ค์ ํ์ ์ด 0์ผ๋ก ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Homework: ์ง๋ ์ฌ์ดํธ์์ ์์ ์์์ฐจํธ ํฌ๋กค๋งํ๊ธฐ
- https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1
- ์์๋ฅผ ๊ฐ์ ธ์ฌ ๋, ๋ค์ ํ์์๋ ๊ธ๋ ๊ฐ์ด ๊ฐ์ ธ์์ง๋ค.
- ํด๊ฒฐํ๊ธฐ ์ํด์, text[0:2]๋ก 2์๋ฆฟ์๊น์ง ๊ฐ์ ธ์ค๊ณ , strp()์ผ๋ก ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ค.
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
url="https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1"
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(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs=soup.select('#body-content > div.newest-list > div > table > tbody >tr')
for tr in trs:
number = tr.select_one('td.number').text[0:2].strip()
title = tr.select_one('td.info > a.title').text.strip()
artist = tr.select_one('td.info > a.artist').text.strip()
print(number, title, artist)
๋ฐ์ํ