Written by
xi-jjun
on
on
Sparta Coding(왕초보시작반) - 3
왕초보 시작반 3주차
DB가 뭔지 너무 궁금해서 3주차까지 들었다. DB를 크게 사용하지는 않았지만, python과 같이 사용해봤을 때 어떤 식으로 운영이 되는지 감이 좀 와서 좋았다. 얼마전까지만해도 그냥 array에 데이터 넣으면 되는게 아닌가 싶었지만 데이터가 수없이 많은 경우에 있어선 DB를 사용하여 더욱 효율적인 관리가 필요함을 알게되었었다. 처음으로 DB가 무엇인지 조금이나마 느껴본 3주차였다.
Database
Database에는 크게 2가지 종류가 있다.
- SQL : 행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사. 정형화되어 있는 만큼, 데이터의 일관성이나 / 분석에 용이.
- Ex) MySQL 등등
- NoSQL : 딕셔너리 형태로 데이터를 저장해두는 DB. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게 된다. 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족.
- Ex) MongoDB 등등
Homework
Python 크롤링 과제였다. 크롤링 관해서는 질리도록 했어서 코드만 올리고 끝내겠다…
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)