파이썬을 활용 디비연결하는 강의를 들었다.
다하고나서는 크롤링과 디비조작에 자신감이 붙었다.
다른 강의도 이렇게 하면 빨리 따라 갈 수 있을 것 같아서 기분이 좋다.
아래 라이브러리 설치
pip install dnspython
pip install pymongo
클러스터 커넥트
설정 후 복사 붙여넣기
몽고디비랑 파이썬 연결
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:<password>@cluster0.bybhipg.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
연결 후 작동여부 확인
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.bybhipg.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
doc={
'name':'영수',
'age':24
}
db.users.insert_one(doc)
Browse Collections 이동
all_users = list(db.users.find({},{'_id':False}))
# 저장 - 예시
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'})
웹스크래핑 디비에 저장하기
퀴즈1.지니뮤직의 1~50위 곡을 스크래핑 해보세요.
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@spartacoding.ksiwocs.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
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=M&rtm=N&ymd=20210701#',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
# 지니뮤직 1-50위 곡을 스크래핑 하기 (순위/곡제목/가수)
gnmusic_trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in gnmusic_trs:
rank = tr.select_one('td.number').text[0:2].strip()
title = tr.select_one('td.info > a.title.ellipsis').text.strip()
singer = tr.select_one('td.info > a.artist.ellipsis').text.strip()
if rank is not None:
doc = {
'title':title,
'rank':rank,
'singer':singer
}
db.music.insert_one(doc)
결과
[스파르타코딩클럽] 웹개발종합반 (국비) 5주차 기록 :: 버킷리스트 만들기 | 팬명록 | 내 프로젝트 AWS 올리기 | 마무리 소감 (0) | 2023.03.21 |
---|---|
[스파르타코딩클럽] 웹개발종합반 (국비) 4주차 기록:: Flask 프레임워크를 활용 서버 생성 및 응용 (0) | 2023.03.19 |
[스파르타코딩클럽] 웹개발종합반 (국비) 3주차 기록 :: 파이썬 기초 / 웹크롤링세팅 / 몽고 디비 연결 (2) | 2023.03.18 |
[스파르타코딩클럽] 웹개발종합반 (국비) 2주차 기록(2) :: 패치 fetch (0) | 2023.03.16 |
[스파르타코딩클럽] 웹개발종합반 (국비) 2주차 기록 :: 자바스크립트 기본/반복문/조건문 (1) (0) | 2023.03.15 |