오늘의 계획
웹종반 3주차 모두 끝내기
이해가 될때까지 천천히 보면서 직접 해보다보니 진도가 잘 나가지 않는 느낌이다.
그래도 내 페이스대로 이해하면서 내것으로 만들어야겠다. 천천히 멀리가자!
강의노트
3-3강부터 다시 듣기
3-4강. Python
변수 자료형 함수 반복문 조건문 순서로 배울것.
함수에서 콜론:을 세미콜론;으로 오타를 내었다.
그 결과 터미널에서 ;에 표시가 나타났다. 오타조심!!!
3-5강.Python의 반복문과 조건문
3-6강. 파이썬 패키지 설치하기
가상환경-라이브러리를 담아두는 폴더
파일→폴더열기→sparta→pyrhonprac→밑에 인터프리터선택 click→python 3.8.6 64bit click→새터미널 열기→
터미널에서 python -m venv venv 치고 엔터 (venv라는 파일이 생김)→밑에 3.8.6 click → venv click →새터미널 열기 → 터미널에서 (venv)를 볼수있음('지금부터 이 폴더에서 라이브러리를 갖다 쓰는거야~')→ pip install 라이브러리이름(requests)
3-7강. 패키지(라이브러리) 사용하기
Fetch의 역할을 하는것이 requests라이브러리이다.
3-9강.크롤링(웹페이지에서 정보를 가져오는것)
pip install bs4 라고 터미널에서 입력 (bs: beutiful soup)
크롤링이란 html속에서 원하는 부분 솎아내어 가져오는것, 특정부분 빨리 솎아내주는 BS 라이브러리사용
아래 크롤링기본구조 입력후 아래 print(soup)입력하고 터미널에서 python hello.py 엔터
print(soup)은 지우고 title = soup.selec_one('원하는 부분 selector복사후 붙여넣기')
print(title.text) 확인
print(title['href']) 하면 원하는 부분 href보여줌
.strip()붙여주면 앞뒤로 붙은 띄어쓰기 다 제거
.replace(',','') ,를 없애줌
크롤링 기본구조
import requests
from bs4 import BeautifulSoup
URL = "https://movie.daum.net/ranking/reservation"
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(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
3-10강. DB
DB두가지 종류
1) SQL=RDBMS : 엑셀처럼 이미 정해진 칸에 저장하는것 장점: 틀이 정해져있으므로 사람이 실수 할일이 없다. 대기업 같은 큰 비지니스가 잘안바뀌는곳 데이터를 좀더 빨리 가져올수 있다.
2) NoSQL(Not only SQL) :mongo DB처럼 데이터를 마음대로 저장할수 있어 장점: 비지니스의 유연성을 담보한다. 스타트업처럼 변화가 많은 곳에서 사용하면 좋다.
클라우드 환경에서 운영되고 있는 데이터베이스를 빌려와서 사용할것. - mongoDB Atlas 사용할것
3-11강. mongoDB 시작하기
https://account.mongodb.com/account/register
Cloud: MongoDB Cloud
account.mongodb.com
3-12강. mongoDB 연결하기
두개의 라이브러리 필요(pymongo 와 dnspython)
터미널에서 pip install dnspython
pip install pymongo
순차적으로 실시
pymongo 기본코드
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력') 여기에서 URL은 mongoDB의 주소-mongoDB site에서 가져옴
db = client.dbsparta
mongoDB에서 구글로 로그인 후 connect 클릭하고 python, 3.6 or ~~~ 로 맞춰준 후 아래의 주소를 복사하여 URL 입력
mongoDB Browse Collections에 들어가보면 dbsparta의 소그룹users안에 저장되어있어야함
but 나는 저장되어 있지 않았다. (_ssl.c:1124)에러 문구가 나타나 구글링하고 python을 업그레이드하고 certifi도 install해보았지만 아직도 저장이 안된다.
Keep getting ServerSelectionTimeoutError - MongoDB Atlas - MongoDB Developer Community Forums
Keep getting ServerSelectionTimeoutError
This fixed the issue completely… Thank you!
www.mongodb.com
그리고 mongoDB의 PW가 틀릴수도 있으니 PW도 다시 변경해주었다.
pymongo.errors.OperationFailure: bad auth : authentication failed
그랬더니 이번엔 이런 오류가 떴다.
주소도 다시 입력해보고 구글링도 계속하면서 혼자 3시간을 끙끙앓다가 매니저님께 달려갔다
일단 PW입력란에 <>를 지우고 다시 실행해보니
$ pip install--upgrade pip
ERROR: unknown command "install--upgrade" - maybe you meant "install"
(venv)
이런 에러가 떠서
pip install --upgrade pip
pip install --upgrade pymongo
위 순서대로 설치하고 나니 오류메시지가 뜨지 않았다. 위에서 보니 계속 upgrade하라고 소리치고있었구나...
오류 하나하나 잘읽어봐야겠다는 생각을 하게되었다
그리고 mongoDB에 들어가 확인해보니 저장이 되었다!!!!!!!
매니저님과 박수치고 환호를 불렀다 ㅋㅋㅋㅋ 오류해결쾌감이 장난아니구나 싶었다
3-13강. Pymongo로 DB조작하기
-Pymongo(find) 코드스니펫
all_users = list(db.users.find({},{'_id':False}))
위 코드스니펫 아래 이렇게 붙여주면 목록이 모두 나온다
지우고 아래를 입력하면 하나만 보여줌. id지우려면 뒤에 붙여주면됨
-DB조작하기
-Pymongo update1 코드스니펫
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
위와 같이 입력하니 영수가 mongoDB에서 사라졌다.
Pymongo 코드요약
3-14강. 웹스크래핑 결과 저장하기
hello.py에서 rank, title,star를 DB에 저장
3-15강. 복습하기
dbmovie.py파일만들기
문재인입니다와 평점이 같은 영화제목을 보여주세요
그결과 문재인입니다 와 드림이 나온다
다음은 드림의 평점을 0으로 만들기를 해보겠다
3주차 숙제.
mongoDB는 이용X
지니뮤직의 1위부터 50위까지의 곡 스크래핑하기
https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20230101
지니차트>월간 - 지니
AI기반 감성 음악 추천
www.genie.co.kr
랭킹 제목 가수 순으로 결과나와야함
genie.py 만들고 실시
크롤링의 기본코드 복사 붙여넣기
rank 깔끔하게 나오게하기위해 text[0:2] 를 사용하여 앞에 두글자만 끊기!
곡제목의 여백을 없애기 위해 strip() 도 잘연구해볼것
숙제까지 모두 완료~ 뿌으듯하다 ; ) 결과가 잘나올때 성취감이 너무 좋다^^
오늘의 느낀점
구글링을 정말 잘해야한다 ㅎㅎ
오류를 하나하나 차근차근 잘살펴보자 늦었으니 얼른 자고 주말에 4주차 5주차 백엔드도 빠르게 보기
화이팅!!!
'TIL' 카테고리의 다른 글
TIL[23.05.15.]내일배움캠프 1주차-1일 (0) | 2023.05.15 |
---|---|
[23.05.14.]웹개발종합반 4주차 (0) | 2023.05.14 |
TIL[23.05.11.]웹개발종합반 3주차 (0) | 2023.05.11 |
TIL[23.05.11]웹개발종합반 2주차 후반 (0) | 2023.05.11 |
TIL[23.05.11.]웹개발종합반 2주차 전반 (1) | 2023.05.11 |