스파르타 코딩클럽 3주차

YuJin Lee·2020년 10월 25일
0
  • 파이썬(Python)을 설치한다는 것의 의미
    일종의 번역팩을 설치한다고 생각하면 된다.
    파이썬 문법으로 된 것을 컴퓨터가 알아들을 수 있도록 변환해주고 프로그래밍을 쉽게 할 수 있는 기본코드를 설치하는 것이다.

  • 파이썬 기초
    파이썬에서는 들여쓰기로 블록 단위를 나눈다.
    들여쓰기를 잘못하면 들여쓰기 에러가 발생하므로 들여쓰기가 매우 중요하다.

함수

# 만들기
def 함수이름(필요한 변수들) :
    내릴 명령어들을 순차적으로 작성
    
# 사용하기
함수이름(필요한 변수들)

조건문

def 함수이름(변수) :
    if 조건 :
    	return 명령어
    elif 조건 :
    	return 명령어
    else :
        return 명령어

반복문

배열이름 = [1,2,3 ...]

for 임의명 in 배열이름 :
    print(임의명)

  • 파이썬 패키지(package)
    패키지는 모듈(일종의 기능들 묶음)을 모아 놓은 단위이다.
    이런 패키지의 묶음을 라이브러리라고 볼 수 있다.
    여기서는 외부 라이브러리를 사용하기 위해서 패키지를 설치한다.
    즉, 패키지 설치 = 외부 라이브러리 설치

  • 가상환경(virtual environment)
    같은 시스템에서 실행되는 파이썬 응용 프로그램들의 동작에 영향을 주지 않으면서,
    파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경이다.
    setting - project interpreter - virtual environment - New environment - Location을 현재폴더/venv로 설정
    현재폴더/venv에 가상환경이 설정되고 패키지 두가지가 설치된다. (pip, setuptools)
    새로운 프로젝트의 라이브러리를 가상환경에 설치하려면 pip를 이용하게 된다.

  • 웹 스크래핑(크롤링)
    웹 스크래핑(web scraping)은 웹 페이지에서 우리가 원하는 부분의 데이터를 수집해오는 것이다.
    한국에서는 크롤링이라고 부르기도 한다.

pip를 통해 requests와 beautifulsoup4 패키지를 설치한다.
requests는 API를 사용할 때 주로 사용하는 모듈이다.
beautifulsoup4는 HTML 코드를 쉽게 스크래핑 해오기 위한 도구이다.

  • 스크래핑 기본 세팅
import requests
from bs4 import BeautifulSoup

# 타겟 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://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200716',headers=headers)

# HTML을 BeautifulSoup 이라는 라이브러리를 활요해 검색하기 용이한 상태로 만든다.
# soup이라는 변수에 "파싱 용이해진 html"이 담긴 상태가 된다.
# 그 후에 코딩을 통해 필요한 부분을 추출한다.
soup = BeautifulSoup(data.text, 'html.parser')

# select를 이용해서 tr들을 불러오기
movies = soup.select('#old_content > table > tbody > tr')

# movies(tr들)의 반복문 돌리기
for movie in movies:
    a_tag = movie.select_one('td.title > div > a')
    # movie 안에 a가 있으면,
    if a_tag is not None:
    	# a의 text를 찍어본다.
        print(a_tag.text)

beautifulsoup 내 select에 미리 정의된 다른 방법들

# 선택자를 사용하는 방법
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')

soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')

# 태그와 속성값으로 찾는 방법
soup.select('태그명[속성="값"]')

# 한 개만 가져오고 싶은 경우
soup.select_one('태그명[속성="값"]')

  • CRUD(크루드, 씨알유디)
    기본적인 데이터 처리 기능은 Create, Read, Update, Delete의 두문자를 따서 CRUD라고 한다.
    대부분의 소프트웨어는 이 기능을 가지고 있고 UI가 갖추어야 할 기본 기능 단위로 CRUD를 묶어서 이야기한다.
    API를 설계하는 방식 중 하나인 RESTful API에서는 HTTP method와 CRUD를 하나씩 매핑해서 쓰기도 한다.

Create: 생성. ex) 사용자가 게시글 쓰기
Read: 읽기. ex) 게시글 보기
Update: 갱신, 업데이트. ex) 게시글 수정
Deleted: 삭제. ex) 게시글 삭제

  • DB의 두 가지 종류
    Database는 크게 두 가지 종류로 나뉜다.

첫번째는 RDBMS(SQL)이다. 행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사하다. 정형화되어 있는 만큼, 데이터의 일관성이나 분석에 용이하다.
ex)postgreSQL, MySQL

두 번째는 No SQL이다. 딕셔너리 형태로 데이터를 저장해두는 DB이다. 같은 값을 가진 데이터들도 자유롭게 저장이 가능하다. 자유로운 형태의 데이터 적재에 유리한 대신 일관성이 부족할 수 있다.
ex) MongoDB

  • mongoDB

  • robo 3T
    mongoDB 프로그램은 눈에 보이지 않는다. (=유저 인터페이스를 제공하지 않는다.)
    robo 3T는 데이터를 저장한 DB내부를 살펴보기 위한 GUI를 제공한다.

  • pymongo
    pymongo는 MongoDB를 쉽게 조작하기 위한 라이브러리이다.

profile
배운 것을 기록하는 곳 💻🙂

0개의 댓글