조건문
if
age = 25 # age라는 나이 값을 담은 변수 만들기
if age > 20: # 조건 : age가 20보다 크다면 -> 지금은 True!
print("성인입니다") # 조건이 참일 때 작동하는 코드
else: # else 조건이 False라면 아래 내용을 실행하세요~ 라는 뜻
print("청소년입니다") # 조건이 거짓일 때 작동하는 코드
if ( 조건이 세 개 이상)
if 조건1:
# 조건1이 참일 때 실행할 코드
elif 조건2:
# 조건1이 거짓이고 조건2가 참일 때 실행할 코드
elif 조건3:
# 조건1과 조건2가 모두 거짓이고 조건3이 참일 때 실행할 코드
else:
# 위의 모든 조건이 거짓일 때 실행할 코드
반복문
fruits = ['사과','배','감','귤'] # fruits라는 과일 값이 담긴 리스트
for fruit in fruits:
print(fruit)
>>>사과, 배, 감, 귤
패키지 사용해보기
PIP로 requests 패키지 설치하기
pip install requests
requests 써보기
import requests # requests 라이브러리 설치 필요
r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()
print(rjson)
웹 스크래핑(크롤링)
BeautifulSoup 라이브러리를 사용해서 웹 스크래핑을 진행할 예정입니다.
# 멜론뮤직 스크래핑
from bs4 import BeautifulSoup
import requests
url = "https://www.melon.com/chart/"
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')
trs = soup.select('.lst50')
for tr in trs:
rank = tr.select_one('.rank').text
title = tr.select_one('.rank01 > span > a').text
artist = tr.select_one('.rank02 > a').text
image = tr.select_one('img')['src']
print(rank, artist, "-", title)
과제
//app.py
from flask import Flask, render_template, request
import random
import requests
app = Flask(__name__)
@app.route("/answer")
def answer():
if request.args.get('query'):
query = request.args.get('query')
else:
query = '20230601'
URL = f"http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchWeeklyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt={query}"
res = requests.get(URL)
rjson = res.json()
movie_list = rjson.get("boxOfficeResult").get("weeklyBoxOfficeList")
return render_template("answer.html", data=movie_list)
if __name__ == "__main__":
app.run(debug=True)
//answer.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
</head>
<body>
<h1>박스오피스 검색</h1>
<p>20230501 형식으로 검색하세요.</p>
<form action="{{ url_for('answer') }}">
<input type="text" name="query">
<button type="submit">검색</button>
</form>
<table class="table">
<thead>
<tr>
<th scope="col">랭킹</th>
<th scope="col">영화명</th>
<th scope="col">영화개봉일</th>
<th scope="col">누적관객수</th>
</tr>
</thead>
<tbody>
{% for answer in data %}
<tr>
<th scope="row">{{answer.rank}}</th>
<td>{{answer.movieNm}} </td>
<td>{{answer.openDt}}</td>
<td>{{answer.audiAcc}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
</body>
</html>
app.py에 있는 그 코드가 html파일을 지정한다.
return render_template("answer.html", data=movie_list)
위의 코드를 통해 html을 배치할 수 있다는 점을 잊지 말아야한다.
'내일배움캠프 > python' 카테고리의 다른 글
중요 개념 (0) | 2024.02.24 |
---|---|
파이썬 문법 심화과정 (0) | 2024.02.22 |
파이썬 문법 (1) | 2024.02.20 |
TIL(데이터를 Flask로 받기,배포하기,listplz 사이드메뉴) (1) | 2024.01.30 |
파이썬-2일차 (1) | 2024.01.26 |