7/17 파이썬,DB ( 왕초보기초반 3주차)

전은규·2021년 7월 16일
0

왕초보시작반

목록 보기
3/6

짤막정리

파이썬 설치
->일종의 변역팩을 설치한다고 생각, 컴퓨터는 1010111 과 같은 언어만 알아 듣는다. 파이썬 문법으로 된 것을 101011 로 변환해줄수 있도록,번역 패키지를 설치하는 것 입니다.
venv확인 왜?

모든 문법은 다 알고 있을수 가 없다. 항상 구글링 하는 습관을 기르자

가상환경(virtual environment) 이란? 프로젝트별로 패키지들을 담을 공구함

문제상황
회사에서는 패키지 A,B,C를 설치 해서 쓰고
개인프로젝트에서는 패키지 B,C,D,E를 설치해서 쓰고 있었다.

그런데 회사팀장님이 B를 이전 버전인 b'로 쓰자고 함
그렇게 되면 같은 컴퓨터에 깔려 있는 개인 프로젝트에서는 b'로 쓰면 코드를 다바꿔야 하는경우 어떻게 해야 할까요?

다 담아 둘 필요없이 공구함을 2개 만들어서,
공구함1에 A,B',C를 담아두고
공구함2에 B,C,D,E를 담아두고 쓰면 관리하기 편할것이다.
그래서 가상환경이라는 개념이 등장 했습니다.

크롤링이가능한 이유
이미 서버에서 받아 온 정보 에서 우리가 필요한 정보를 솎아 내는 작업
기술적으로
1.요청 코드 단에서
2.html중에서 정보 를 가져옴

BeautifulSoup
headers = 브라우져에서 엔터치는거 마냥 효과를 준다.

DB
-> 나중에 데이터를 잘 찾아서 쓰기 위해서
요렇게 쌓아야 더 잘가져갈수 있다~

SQL-엑셀에 가깝다. 중간에 바꾸기 어렵다. 반면에 데이터의 일관성이나/분석에 용이 할 수 있다.
MY-SQL ORACLE
NoSQL- 딕셔너리 형태로 데이터를 저장해두는 DB입니다. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게 됩니다. 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족할 수 있습니다.
MONGGO DB

막히는부분

$(document).ready(function(){
listing();
});

function listing() {
console.log('화면 로딩 후 잘 실행되었습니다');
}

새로고침시에 화면 로딩 후 잘실행되었습니다.
새로고침마다 콘솔에 찍혀야 되는거아닌가?

movies = db.movies.find_one({'title':'매트릭스'})
print(movies['star'])
타이틀이 매트릭스인 자료를 movies 에 넣고 movies의 star의 값을 출력

느낌

3주차를 끝내고 아직 파이썬의 개념 이 정확하게 잡히지 않는다. 몽고DB와 연결되어 사용할수도 있는 번역팩이라...감을 조금더 잡기 위해서 유튜브 영상을 조금더 봐야 할거 같다.
크롤링도 생각보다 까다롭다.
구글링이 자연스러워야 하는데 그렇지 못하다.

작업결과물,퀴즈,숙제

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

# URL을 읽어서 HTML를 받아오고,
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)

# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(data.text, 'html.parser')
# select를 이용해서, tr들을 불러오기
songs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')

for song in songs :
    songnum = song.select_one('td.number').text[0:2].strip()
    songname = song.select_one('td.info > a.title.ellipsis').text.strip()
    singer = song.select_one('td.info > a.artist.ellipsis').text
    print(songnum,songname,singer)

#split로 구현
# for song in songs :
#     songnum = song.select_one('td.number').text.split()[0]
#     songname = song.select_one('td.info > a.title.ellipsis').text.strip()
#     singer = song.select_one('td.info > a.artist.ellipsis').text
#     print(songnum,songname,singer)

profile
성장하는개발자

0개의 댓글