다양한 플랫폼에서 사용할 수 있는 NoSQL 타입의 데이터베이스 프로그램
JSON과 비슷한 형태로 자료를 정리하는 것이 특징!
MongoDB의 자료는 각각의 딕셔너리인 도큐먼트가 모여 컬렉션,
컬렉션이 모여 DB가 되는 형태
pymongo 라이브러리의 역할
MongoDB라는 프로그램을 조작하기 위해 특별한 라이브러리인pymongo
가 필요하다.
pip install pymongo
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.만들db명
# 아래에 코드 작성
# 'users'라는 collection에 {'name':'bobby','age':21} 외 2개를 넣습니다.
db.users.insert_one({'name':'bobby','age':21})
db.users.insert_one({'name':'kay','age':27})
db.users.insert_one({'name':'john','age':30})
from pymongo import MongoClient # pymongo를 임포트 하기(패키지 인스톨 먼저 해야겠죠?)
client = MongoClient('localhost', 27017) # mongoDB는 27017 포트로 돌아갑니다.
db = client.dbsparta # 'dbsparta'라는 이름의 db를 만듭니다.
# MongoDB에서 데이터 모두 보기
all_users = list(db.users.find({}))
# 참고! MongoDB에서 특정 조건의 데이터 모두 보기
same_ages = list(db.users.find({'age':21}))
print(all_users[0]) # 0번째 결과값을 보기
print(all_users[0]['name']) # 0번째 결과값의 'name'을 보기
for user in all_users: # 반복문을 돌며 모든 결과값을 보기
print(user)
user = db.users.find_one({'name':'bobby'})
print(user)
user = db.users.find_one({'name':'bobby'},{'_id':False})
print(user)
# db.db명.update_many({찾을조건},{'$set': {'바꿀컬럼명':'바꿀값'}})
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
db.users.delete_one({'name':'bobby'})
# 저장
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'})
import requests
from bs4 import BeautifulSoup
# url을 읽어서 HTML을 받아오고,
url = ''
headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'}
res = requests.get('url', headers=headers)
# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(res.text, 'html.parser')
# select를 이용해서 tr들을 불러오기
movies = soup.select('#old_content > table > tbody > tr')
# movies(tr들)의 반복문을 돌리기
for movie in movies:
a_tag = movie.select_one('td.title > div > a')
# movie 안에 a가 있으면,
if a_tag is not None:
rank = movie.select_one('td:nth-child(1) > img')['alt'] # img 태그의 alt 속성값을 가져오기
title = a_tag.text # a 태그 사이의 텍스트를 가져오기
star = movie.select_one('td.point').text # td 태그 사이의 텍스트를 가져오기
print(rank, title, star)
위 코드의 import 줄 아래에 붙여넣자
from pymongo import MongoClient # pymongo import 하기 (그 전에 패키지 install 필수~)
client = MongoClient('localhost', 27017) # mongoDB는 27017 포트로 돌아간다.
db = client.dbspart # 'dbsparta'라는 이름의 db를 만든다!