<웹개발 3주차 배운내용>
Python(파이썬), 크롤링, mongo DB
< 파이썬의 문법>
파이썬의 문법은 굉장히 직관적!
“print”는 ()에 있는 것을 터미널에 보여주세요 의미
let = a 처럼 지정하지 않고 바로 a = 2 처럼 사용
대부분은 자바스크립트와 비슷함
함수는 자바스크립트와는 조금 다르게 생김
“def : 함수를 선언할게” 라는 뜻
def hey(): ← 이게 바로 이 함수의 내용물이다 라는 뜻
콜론(:)을 하고 탭을 반드시 해야함. 탭을 하는것이 파이썬에서는 내용물이구나 라고 인식함
탭이 파이썬에서는 꼭 지켜져야하는 룰로 박아두었음.
return: 파이썬에서 함수의 결괏값을 돌려주는 명령어. 함수는 입력값을 받아 어떤 처리를 한 후에 결괏값을 돌려주는 형태.
return이 있으면 함수를 그 값으로 변신시킨다로 생각.
<반복문>
for a in ages :
→ ages의 있는 값들을 하나하나씩 가져와서 a로 넣고 그 a를 밑에서 가져다 쓰자 라는 의미
즉, ages의 값이 하나하나씩 찍힘.
반복문과 조건문의 응용
ages = [5,10,13,23,25,9]
for a in ages:
if a > 20:
print('성인입니다')
else:
print('청소년입니다')
파이썬의 라이브러리
프로젝트별로 라이브러리를 따로 담아두면 좋음
따로 담아두면 업/다운그레이드도 훨씬 편함. 이를 가상환경이라고 부름 , 라이브러리를 담아두는 폴더라고 생각하면 됨.
fetch의 역할이 파이썬에서 requests 의 역할.
requests의 라이브러리를 만든 사람의 document를 가보면 어떻게 써라 라는것이 써있음
크롤링
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://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
크롤링이란? 웹에 접속해서 데이터를 솎아 내어 가지고 오는 것
데이터베이스를 하는 이유
NoSQL : 정형화된 틀이 있는게 아닌, 데이터를 내 마음대로 저장을 해놓을 수가 있음.(mongoDB)
비즈니스의 유연성을 크게 담보함(스타트업에서 사용하는게 좋음)
비즈니스가 바뀔 수 있는 즉, 정해진 틀이 있는게 부적합한 곳에서 사용하기 좋음
DB의 실체 : 엑셀에다가 데이터를 넣는것과 비슷함
데이터를 잘 쌓고 잘 가져가게 하는 프로그램
요새는 인터넷에 있는 컴퓨터에 데이터를 올려 놓는다 → 클라우드 환경에 올려 놓는다
클라우드 환경에 있는 데이터를 빌려와서 사용
최신 클라우드 서비스인 mongo DB Atlas 사용
mongo DB는 파이썬에서 연결한다.
파이썬은 내컴퓨터에, mongo DB는 인터넷에 있으므로,
내 컴퓨터에서 데이터를 저기 있는 mongo DB에 쏴주거나 가져올 수 있음.
mongo DB를 조작하려면 2개의 라이브러리 필요
pymongo, dnspython
pymongo 에서 데이터를 가지고 오는 방법은
1. 다 가지고 오거나 → for a in all users
2. 하나만 가지고 오거나 → db.users.find_one
pymongo 코드요약
# 저장 - 예시
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'})
mongo DB 사용을 위한 코드
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.n9rnbd1.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
<3주차 나의 생각>
2주차에 비하면 라이브러리가 간단하고 편했지만 그래도 스스로 코드를 입력하려고 하면 어려움이 있는 3주차였다. 반복해서 숙지 및 연습이 필요할 것으로 생각된다.
자바스크립트와 파이썬의 문법이 다른 점 때문에 더욱 헷갈리는 것 같다.