Lagomer의 뉴노멀 시대, 디지털 노마드로 사는 법
디지털 노마드, Lagomer

디지털크리에이터, 블로그마케팅, SEO/SEM, 관광디지털마케팅, 관광컨설팅

디지털 노마드(Digital Nomad)/디지털 마케터&크리에이터

스파르타코딩클럽 [웹개발종합반_3주차개발일지]

Lagomer 2021. 7. 19. 20:35

웹개발종합반 3주차 개발일지-파이썬, 크롤링

파이썬, 크롤링 등 코딩관련 이미지
코딩 관련 이미지(출처: Freepik credit by artmonkey)

오랜만에 쓰는 코딩 개발 일지.. 

스파르타 코딩클럽 웹개발 종합반 수업을 들을 때, 3주 차가 제일 재밌는 주라고 얘기를 듣고 잔뜩 기대하며 강의를 시작했는데, 세팅부터 꼬이기 시작했습니다...

slack을 통해 튜터님들 도움으로 겨우 다시 설치를 마치고(윈도우 영문 이름 변경 때문에 결국 컴퓨터 사용자를 변경했더니 1-2주 차 저장 파일들이 어딘가로 사라진 것 같았습니다... 다시 돌아가서 보기엔 시간이 없는 상황이라 일단은 완주를 하기 위한 스케줄에 맞추기로 했습니다.)

눈으로 따라가면서 강의를 보며 값을 입력하며 최대한 해보았지만, 역시나 결과값이 에러가 나니 이해를 하는데 훨씬 어려움을 겪었습니다. 그럼에도 불구하고, 3주차 꽤 흥미로웠고, 복습 때는 실제로 실습해보며 조금 더 이해하며 수업을 들을 수 있었습니다.

간단하게 3주차 개발일지 내용을 정리하여 공유합니다.

 

* 스파르타코딩클럽 강의에 관심 있으신 분들은 아래 링크를 통해 5만원 할인 받고 강의 신청해보세요~ 

 

https://spartacodingclub.kr/?f_name=%EC%B6%94%ED%99%94%EC%A0%95&f_uid=6065ed207fe512c0156681b4 

 

스파르타코딩클럽

5주 완성! 코딩을 전혀 모르는 비개발자 대상의 웹개발 강의

spartacodingclub.kr

 

 

 

 


1. 파이썬 (python)

1) 파이썬 설치의 의미 : 일종의 번역팩 설치 -> 컴퓨터는 101010001 과 같은 언어만 알아듣기 때문에, 파이썬 문법으로 된 것을 101010001로 변환해줄 수 있도록, 번역 패키지를 설치하는 것

2) 파이썬 기초 문법
- 변수 & 기본연산
- 자료형 : 숫자, 문자형

- 리스트 형 : Javascript의 배열형과 동일

- Dictionary 형 : Javascript의 dictionary형과 동일

- 함수

- 조건문 : if/else 로 구성

- 반복문 : 파이썬에서의 반복문은, 리스트의 요소들을 하나씩 꺼내 쓰는 형태 -> 무조건 리스트와 함께 쓰임

 

2. 크롤링 기초

- 크롤링 : 크롤링(crawling) 혹은 스크레이핑(scraping)은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위 (출처: 나무위키)

- 크롤링 기본 세팅

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('URL 입력',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

# 코딩 시작
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('URL 입력',headers=headers)

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

# 코딩 시작

- Select / Select one 사용법 

태그 안의 텍스트를 찍고 싶을 땐 → 태그.text
태그 안의 속성을 찍고 싶을 땐 → 태그['속성']

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
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers)

# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(data.text, 'html.parser')

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

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

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

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

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

# 한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')


개발일지를 쓰며, 오랜만에 간단하게나마 복습을 하다 보니 모든 학습이 그렇듯, 코딩도 결국 반복적으로 실습해 몸으로 익혀야 한다는 것을 다시 한 번 느낍니다.

 

컴퓨터 언어들이 조금이라도 더 익숙해질 수 있도록 틈틈이 계속 반복적으로 해보아야겠습니다.