Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

라이프 고군분투기

스파르타 웹개발 종합반 3주차 본문

웹개발 종합반

스파르타 웹개발 종합반 3주차

calle 2023. 1. 26. 17:57

2023.01.26 - [분류 전체 보기] - 스파르타 웹개발 종합반 2주 차

 

스파르타 웹개발 종합반 2주차

더보기 2023.01.22 - [분류 전체 보기] - 스파르타 코딩클럽 웹개발 종합반 1주 차 스파르타 코딩클럽 웹개발 종합반 1주차 스파르타 웹개발 종합반 코스를 수강했다. 수강할 당시에는 진도를 따라가

workload33.tistory.com

 

2주 차 까지는 클라이언트 부분과 클라이언트-서버가 이어지는 부분까지 배웠다면 이제는 서버 부분이다. 드디어 파이썬을 배운다. 개발에 전무한 사람도 한 번쯤은 들어봤다는 파이썬... 그리고 페이지를 크롤링해서 데이터를 끌어오는 방법과 mongo DB를 통해 데이터를 서버에 저장하는 방법을 배워본다. 

 

 

[3주 차 수업 목표]

  • 파이썬 기초 문법을 안다.
  • 원하는 페이지를 크롤링할 수 있다.
  • pymongo를 통해 mongoDB를 제어할 수 있다.

 

들어가기 전에.. 

2주 차 복습으로는 후기로는 쓰지 않았지만 1주 차 수업 중 만들어 두었던 스파르타피디아(영화 리뷰 및 소개 페이지)에 영화 데이터를 찍어보았다. 순서는 아래와 같다

 

1. 로드가 다 되면 실행되는 함수 만들기 ( 'javascript 로딩 후 실행'이라고 구글링 해보기)

2. Ajax 이용해서 API 결과값 확인해 보기 (GET 형식)

3. 데이터 리스트  하나씩 출력해 보기 (반복문 함수 사용)

4. image, comment, title, desc, star의 내용을 가지고 HTML 만들어 붙이기 +별 기호도 만들어 붙이기

 

 


 

1. 파이썬

파이썬을 우선 설치해준다. 파이썬은 매우 직관적인 스크립트 언어다. 파이썬은 이전에 배운 HTML과 javascript와 달리 위치에 따라서 명령이 바뀐다. 즉 따로 괄호나 대괄호 같은 묶음이 없는 대신에 탭으로 들여 쓰는 정도에 따라 포함 범위가 나뉜다. 

 

파이썬도 라이브러리가 존재한다. 단위를 잠시 설명하자면, 일종의 기능들의 묶음이 '모듈'이다. 이 모듈의 묶음은 '패키지'고, 그 패키지의 묶음이 바로 '라이브러리'다. 이 라이브러리를 설치하려면 pip 이용한다. pip는 비유를 들자면 앱스토어 정도의 느낌이라고나 할까. 

 

3주 차에서는 Request 패키지를 사용하는데, 파이썬에서 HTTP를 사용하기 위해 쓰이는 라이브러리이다. 자세한 사용법은 아래 사이트를 방문해 보면 잘 설명되어 있다. 

https://light-tree.tistory.com/6

 

파이썬(python) Requests 사용법 정리

Requests 는 파이썬에서 HTTP를 사용하기 위해 쓰여지는 라이브러리로, 기본 내장 라이브러리는 아니지만 거의 표준처럼 널리 쓰이고 있다. 개발 과정에서 많이 쓸법한 내용들만 뽑아서 정리했다.

light-tree.tistory.com

 

파이썬에는 가상환경이라는 것이 있는데, 같은 시스템에서 실행되는 다른 파이썬들이 각각 다른 패키지를 사용할 수 있도록 해주는 일종의 프로젝트별 공구함이다. 각 파이썬 프로젝트는 이 가상환경 덕분에 격리된 실행환경을 가지게 되어 독립적으로 동작될 수 있다. 

 

[파이썬 기초 문법]

  1. 변수 & 기본 연산
  2. 자료형
  3. 함수
  4. 조건문
  5. 반복문

등이 있다..  이미 너무나도 상세히 설명해 놓은 블로그가 많아 따로 적지 않고 내가 공부할 때 살펴보았던 자료를 공유해 둔다. 

 

https://book.coalastudy.com/data_crawling/week2/stage2

 

Stage2. 파이썬 기초문법 이해하기 #1 - 쉽게 따라하는 데이터수집기 만들기

위와 같이 코드를 실행하면, 각각 a에는 "Hello World"가 저장되고, b에는 3, c에는 -11이 되어 아래에서 출력하는 경우 a, b, c를 출력하면 문자 a, b, c가 아닌 저장된 값 "Hello World", 3, -11이 출력되는 것

book.coalastudy.com

 

 


 

 

2. 크롤링

네이버 사전에서 크롤링의 정의는 '웹사이트(website), 하이퍼링크(hyperlink), 데이터(data), 정보 자원을 자동화된 방법으로 수집, 분류, 저장하는 것.'이다. 

크롤링을 하기 위해서는 패키지를 추가 설치해야 한다. bs4(beautifulsoup4)을 추가해 주면 되는데, HMTL의 정보를 긁어오기 쉽게 도와주는 패키지이다. 변수는 통상적으로 soup을 사용한다. 

 

https://wikidocs.net/85739

 

2.6 사이트 정보 추출하기 - beautifulsoup 사용법 (1)

# BeautifulSoup가 필요한 이유 request.text를 이용해 가져온 데이터는 **텍스트형태의 html **입니다. 텍스트형태의 데이터에서 원하는 html 태그…

wikidocs.net

 

 

 


 

 

3. DB 개괄

데이터 베이스 파트다. 데이터 베이스를 사용하는 이유는 나중에 데이터를 잘 찾기 위해서! DB에는 두 가지 종류가 있다. 

 

1. SQL(RDBMS)

엑셀과 같이 행/열이 있는 정형화된 형태이다. 자유로운 변형은 어려우나 일관성이 있다는 장점이 있다.

 

2. No-SQL

딕셔너리 형태로 데이터를 저장해 두는 DB. 자유로운 형태에 유리하나 일관성이 조금 부족하다.

-> Mongo DB는 이 No-SQL에 속해있다.

 

Mongo DB의 클라우드 서비스인 mongoDB - Altas에 가입하고 연결했다. 이후 파이썬에 pymongo 패키지를 설치하여 pymongo로 DB를 조작해 보았는데 기본은 아래 4가지 기억해 두자.


1. 데이터 넣기 (insert)

db.users.insert_one({})

 

2. 결과 값 찾기 (find)

  • 모든 데이터 뽑아 보기 : all_users = list(db.users.find( {}, {'_id':False}))
  • 특정 결과 값 뽑아보기 : users = db.users.find_one( { })

 

3. 수정하기 (update_one)

db.users.update_one({'$set' : {}}) -> 추가하는 부분

 

4. 삭제하기 (delete_one)

db.users.delete_one({})


 

2번에서 크롤링한 데이터를 DB에 저장하기 위해서는 아래 순서로 파이썬을 작성하면 된다. 

 

  1. url 열어서 우선  HTML을 받아온다 (request.get)
  2. beautifulsoup을 이용해 검색하기 용이한 상태로 HTML을 만든다. 
  3. select를 이용해서 tr들(데이터)을 불러온다. (soup.select)
  4. 3에서 블러온 변수의 반복문 돌린다 (for 문)
  5. 조건문으로 원하는 데이터 뽑아서 insert_one

 

 

 


+ 3주 차 숙제

3주차 숙제는 지니뮤직을 크롤링해서 제목, 가수 데이터만 프린트해보는 것이다. 아래와 같이 나온다.