웹개발 종합반 3주차 - 파이썬 기초(1)

4강 - 파이썬 시작하기

파이참에서 새 프로젝트를 만든다.

Location으로 폴더 위치 확인하고, venv폴더까지 생성되는지 확인
main.py생성 체크 해제


이 때 생기는 venv폴더는 건드리지 않는다.


오마클릭 - Python File클릭하면 파이썬 파일 만들 수 있음


오마클릭 - Run'파일이름'으로 실행하는 버릇 들이기

5강 - 파이썬 기초공부

모든 문법을 외울 수는 없기때문에 구글링하는 습관을 들이는것이 중요하다.


원하는 값을 변수에 넣고 print하면 해당 값을 볼 수있다.
JS의 console.log같은건가 싶당


에러발생시 에러메세지의 마지막줄을 잘 살펴보자!
해당 오류는 선언되지않은 변수를 사용하여 생긴 오류이다.

숫자와 문자를 더하는것도 오류를 일으키는 원인 중 하나
원인을 찾기 힘들때에는 해당 마지막줄을 복사해서 구글링을 해보면 대부분 해결가능
해당오류는

num = str(2)

를 이용하여 문자열 2로 만들어주면 해결이 가능하다



JS와 유사


함수문법은 다르니 눈에 익히기
또한 파이썬의 함수는 괄호가 없기때문에 들여쓰기공간 확인 필수! 들여쓰기 된 곳까지가 하나의 함수이다


IF구문



for~ in 반복문


!!중괄호, 대괄호등 언제 어디서 사용되는지 따로 외울 필요가 없다. 라이브러리등 만드는 사람에 따라 달라지기 때문ㅎㅎ

6강 - 파이썬 패키지 설치하기

7강 - 패키지 사용해보기


requests패키지를 이용하여 미세먼지API를 가져오고
반복문과 if문을 이용하여 미세먼지 농도 40이 넘는곳만 출력하기

8강 - 웹스크래핑(크롤링) 기초


requests는 페이지를 받아오는데 필요한 패키지
bs4는 받아온 페이지 정보를 솎아내기 위한 패키지


네이버 영화페이지에 있는 html태그 선택자 가져오기

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


title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')

print(title.xetx)

타이틀에 선택자 불러오고
print(title) 하면 해당 선택자의 html코드를, print(title.text)하면 선택자안에 있는 텍스트를 가져올 수 있다.

a태그의 속성을 가져오려면 print(title['href'])

soup.select_one은 하나의 개체만 가져올 수 있기때문에, 여러개의 영화목록을 가져오기위해서는 soup.select를 사용해야 한다


copy selector를 이용하여 선택자를 확인,
다른 부분을 지우고 겹치는 부분으로 선택자이용

여러개의 tr을 불러오고 for문을 이용하여 돌림
for문안에서 tr.select_one을 이용해, 하나의 tr안에있는 하나의 a태그를 찾아온다



다만 tr태그중 text요소를 포함하지 않은 개체가 있을 수 있음
이럴경우 오류가 발생하므로,

for tr in trs:
    a_tag = tr.select_one(' td.title > div > a')
    if a_tag is not None:
        title = a_tag.text
        print(title)

if문을 이용하여 None이 아닐경우에만 표시하게끔 코드를 짜준다

9강 - Quiz_웹스크래핑(크롤링) 연습

for tr in trs:
    a_tag = tr.select_one(' td.title > div > a')

    if a_tag is not None:
        rank = tr.select_one('td:nth-child(1) > img')['alt']
        title = a_tag.text
        point= tr.select_one(' td.point').text

        print(rank,title,point)

반복된 tr안에서 랭크와 별점 찾아서 변수에 저장
print(rank,title,point)로 함께 출력

사람마다 데이터를 가져오는 과정에 따라 코드가 다를 수 있다. 다만 짧고 효율적인 코드를 가져오는것이 중요하다!

좋은 웹페이지 즐겨찾기