1 시작하기
1.1 Gitbash 다운로드
윈도우만 하면 된다고 함
1.2 Python 확장 설치
VSCODE 확장 탭에서 Python 설치
1.3 새 파일 만들기
파일명.py
1.4 실행
우클릭 Python을 터미널에서 실행
2 해보기
2.1 변수 선언
a = 1
b = 3
print(a+b)
실행 결과 : 4
2.2 자료형
a = ['사과', '체리', '복숭아']
print(a[1])
실행 결과 : 체리
2.3 dictionary
a = {'name' : '영수', 'age' : 25}
print(a['name'])
실행 결과: 영수
2.4 함수
def hey():
print('히히!')
hey()
실행 결과 : 히히!
def sum(a,b,c):
return a+b+c
result = sum(1,2,3)
print(result)
실행 결과 : 6
2.5 조건문
age = 27
if age > 20:
print('성인입니다')
else:
print('청소년입니다')
실행 결과 : 성인입니다
age = 15
if age > 20:
print('성인입니다')
else:
print('청소년입니다')
실행 결과 : 청소년입니다
2.6 반복문
ages = [5, 10, 13, 23, 25, 9]
for a in ages:
print(a)
실행 결과 :
5
10
13
23
25
9
♬ ages의 하나하나를 a로 가져오는 것
2.7 조건문 + 반복문
ages = [5, 10, 13, 23, 25, 9]
for a in ages:
if a > 20:
print('성인입니다')
else:
print('청소년입니다')
실행 결과 :
청소년입니다
청소년입니다
청소년입니다
성인입니다
성인입니다
청소년입니다
2 라이브러리 사용하기
2.1
클릭해서 인터프리터 누르고 상단에서 버전 누르기
(난 Python 3.9.7 64-bit에서 Python 3.8.6 64-bit로 바꿈)
2.2
터미널에 python -m venv venv 입력
(맥은 python3으로 써야함)
2.3
그럼 폴더에 이런게 자동으로 생성됨
2.4
다시 인터프리터 누르고 venv 선택
라이브러리를 venv에서 가져올거야(설치할거야~) 하는 것
2.5 설치하기
pip install requests(라이브러리 이름)
requests는 fetch의 역할을 한다고 함
사용법은 구글에 requests python docs 치면 나옴
2.6 사용해보기
import requests
r = requests.get('URL')
rjson = r.json()
print(rjson['RealtimeCityAir']['row'])
♬ 가져올 데이터들이 터미널에 주르륵 입력됨
import requests
r = requests.get('링크')
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 웹 스크래핑(크롤링)
3.1 기본 세팅
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.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
♬ BeautifulSoup 사용했음
우클릭 후 검사 누르면 이렇게 뜨는데 selector 복사해서 링크에 넣기
3.2 사용해보기
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.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
a = soup.select_one('#old_content > table > tbody > tr:nth-child(3) > td.title > div > a')
print(a.text)
실행 결과 : 그린북
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.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
a = soup.select_one('#old_content > table > tbody > tr:nth-child(3) > td.title > div > a')
print(a['href'])
실행 결과 : URL 출력
우클릭 - selector 복사
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.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#old_content > table > tbody > tr')
for tr in trs:
print(tr)
실행 결과 : 영화 정보 출력
♬ tr을 두 개 복사 해봄
#old_content > table > tbody > tr:nth-child(3)
#old_content > table > tbody > tr:nth-child(4)
tr까지만 복사해서 trs = soup.select('')에 붙임
제목 가져오기
trs = soup.select('#old_content > table > tbody > tr')
for tr in trs:
a = tr.select_one('td.title > div > a')
print(a)
실행 결과 : 제목 노출
타이틀을 selector 복사 했을 때
#old_content > table > tbody > tr:nth-child(3) > td.title > div > a
가 나오는데, 앞부분은 이미 복사를 했으므로 td.title부터 사용
근데 중간중간에 None이 껴있음
a 찾았는데 a 없대
if is not None:
print(a.text)
을 추가해주면 됨
아니면 if a != None:
실행 결과 : None이 사라졌음
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.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
a = movie.select_one('td.title > div > a')
if a is not None:
title = a.text
rank = movie.select_one('td:nth-child(1) > img')['alt']
star = movie.select_one('td.point').text
print(rank, title, star)
실행 결과 : 순위, 제목, 별점이 순서대로 노출
♬ 속성은 ['alt']
'Programming > Python' 카테고리의 다른 글
[Python] 자료형 확인하기 / 문자열 연산자 (0) | 2023.03.28 |
---|---|
[Python] 연산자 / 리터럴 / 출력 (0) | 2023.03.28 |
[Python] 문장 / 표현식 / 키워드 / 식별자 / 주석 (0) | 2023.03.27 |
[Python] 숫자 (0) | 2023.03.22 |
[Python] 기초 문법 (0) | 2023.02.23 |