본문 바로가기
TIL 기록

[스파르타 코딩클럽] 6일차 기록

by 지난_JINAN 2022. 2. 28.

6일차 기록


준비

PyCharm

mongoDB

robo3T


memo

 

파이썬 패키지 : 모듈을 모아놓은 단위

패키지의 묶음 : 라이브러리

-> 패키지 설치 = 외부 라이브러리 설치

 

mongoDB : 데이터베이스

GUI(그래픽인터페이스)를 제공하지 않아서 데이터의 변경사항을 눈으로 확인 할 수 없음

DB 내부를 살펴보기 위한 프로그램 설치 필요 : robo3T는 DB 내부를 확인 할 수 있도록 해줌

 

No-SQL : 딕셔너리 형태로 데이터를 저장해두는 DB

자유로운 형태의 데이터 저장에 유리하지만 일관성이 부족 할 수 있음

ex) MongoDB

 

RDBMS(SQL) : 행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사함

정형화 되어있어 데이터의 일관성/ 분석에 용이

ex) My-SQL , ORACLE 등

 

파이썬으로 MongoDB 조작 : pymongo 라이브러리 설치

 

https://wikidocs.net/13

 

02-2 문자열 자료형

[TOC] ## 문자열이란? 문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자열이다. ```{.no-h ...

wikidocs.net

#3주차 숙제

import requests
from bs4 import BeautifulSoup

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

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)
# 지니뮤직 크롤링
#requests로 요청하고 beautifulsoup으로 원하는 데이터를 솎아낸다
soup = BeautifulSoup(data.text, 'html.parser')

##body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.check
##body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.info > a.title.ellipsis
##body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.number
##body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.info > a.artist.ellipsis
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)

#strip() : 양쪽공백지우기
#lstrip() : 왼쪽공백지우기
#rstrip() : 오른쪽공백지우기

 

Flask 프레임워크 : 서버를 구동시켜주는 코드 모음, 서버 구동에 필요한 복잡한 것들을 가져다 쓸 수 있음

 

templates 폴더 안에 html 파일 저장 -> app.py 실행하면 html 파일을 화면에 그려줌

 

로컬서버 : localhost:5000으로 접속해서 확인


느낀점

주말 이틀 쉬었던 부분 월/화에 나눠서 들으려고 2일치(16강)듣는데 쉬운듯 어려운듯

웹크롤링 재미는 있는데 아직 눈에 안익어서 연습 더 해야겠다

익숙해지다보면 재미있는거 더 할 수 있을 것 같음