Everyday Dev System

웹개발 종합반 3일차 -1 본문

내배캠 초기 학습/웹개발 종합반

웹개발 종합반 3일차 -1

chaeyoung- 2023. 5. 10. 14:36

20230510 - 2:11 pm - 3:50 pm

파이썬 & MongoDB

 

Python 

목차

1. 기초 문법
2. 라이브러리 활용법
3. 크롤링 활용

 

파이썬을 설치한다는 것의 의미

컴퓨터가 파이썬을 해석할 수 있도록 일종의 번역팩을 설치한다고 생각하면 된다.

 

VS code IDLE에서 [터미널] - [새 터미널] 에서 "+" 버튼을 클릭

[기본프로필 선택하기] 에서 GIT bash를 선택하고 터미널을 껐다가 다시 키면 아래와 같이 설정됨.

how to run python file in Terminal

 

1. 기초 문법

a=2
b=3
print(a+b)

5

a= '대한'
b= '민국'
print(a+b)

대한민국

a= ['사과','','']
print(a[2])

a = {'name': '영수', 'age':24}
print(a['name'])

영수

def hey():
    print('hey')

hey()

hey

def sum(a,b,c) :
    return a+b+c

result = sum(1,2,3)

print(result)

6

 

반복문 & 조건문

age = 25

if age > 20:
    print('성인입니다.')
else:
    print('청소년입니다.')

성인입니다.

ages = [5,10,13,23,25,9]

for a in ages:
    if a > 20:
        print('성인입니다.')
    else:
        print('청소년입니다.')

청소년입니다.
청소년입니다.
청소년입니다.
성인입니다.
성인입니다.
청소년입니다.

 

 

2. 라이브러리 활용방법

1. 라이브러리를 담아서 관리할 폴더를 생성

터미널에  python -m venv venv 를 입력하여 관리할 폴더를 생성

 

2. 해당 라이브러리를 다시 선택하고 터미널을 새로 열면 venv가 붙음.

 -> venv 폴더에서만 라이브러리를 가져다가 활용한다는 의미

 

3. pip install requests 입력 후 enter (requests 라이브러리 설치)

    fetch 역할을 하는것이 requests라는 라이브러리임.

 

4. 자치구별 미세먼지 출력하는 코드 입력하기.

    URL : spartacodingclub.shop/sparta_api/seoulair

import requests # requests 라이브러리 설치 필요

r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()

정답 : 

import requests 

r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()

rows = rjson['RealtimeCityAir']['row']

for a in rows :
    gu_name = a['MSRSTE_NM']
    gu_mise = a['IDEX_MVL']
    print(gu_name,gu_mise)

결과 :

 

 

 

3. 크롤링 활용

bs4 라이브러리 설치 하기 ( pip install bs4 ) 

- html 코드에서 원하는 데이터를 추출하기에 편리한 라이브러리 (beautiful soup)

Base code 

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')

1) 영화 제목 한개 가져오기

  아래와 같이 selector 복사 클릭.

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')

title = soup.select_one('#mainContent > div > div.box_ranking > ol > li:nth-child(9) > div > div.thumb_cont > strong > a')

print(title.text)

결과: 존 윅 4

 

2) 모든 영화 제목 다 가져오기

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')

lis = soup.select('#mainContent > div > div.box_ranking > ol > li')

for li in lis :
    title = li.select_one('.link_txt').text
    print(title)

 

.strip()은 앞뒤로 붙은 띄어쓰기를 없애준다.

.replace(',','')는 콤마(,)를 공백으로 변경해준다.

 

 

'내배캠 초기 학습 > 웹개발 종합반' 카테고리의 다른 글

웹개발 종합반 4일차 -1  (0) 2023.05.12
웹개발 종합반 3일차 -2  (0) 2023.05.10
웹개발 종합반 2일차 - 2  (2) 2023.05.09
웹개발 종합반 2일차 -1  (0) 2023.05.09
웹개발 종합반 1일차  (0) 2023.05.03