본문 바로가기

Python으로 웹 스크래퍼 만들기

Python으로 웹 스크래퍼 만들기 복습 9일차[flask, Dynamic URLs, Templates] (Feat. 노마드코더)

본 포스팅은 노마드코더님의 온라인 강의에 대한 복습을 기록하기 위한 포스팅입니다.

※ 본 포스팅의 내용은 강의를 들은 후 필자의 개인적인 의견을 기재한 것이니, 정답이 아닐 수 있음을 참고하십시오.

강의 소개 : 파이썬으로 웹 스크래퍼 만들기 (2주 완성반)
  -. 내용 : 파이썬 기초 (타입, 변수, 함수, 클래스 등 및 웹 스크래퍼 코드 작성법)
  -. 비용 : 100% 무료 강의
  -. 비고 : 한글 자막 제공 / 강의 100% 완료 시 10% 할인 쿠폰 제공
온라인 강의 : https://nomadcoders.co/
    /    풀스택 개발자 로드맵 : https://nomadcoders.co/roadmap
유튜브 채널 : https://www.youtube.com/channel/UCUpJs89fSBXNolQGOYKn0YQ
 

노마드 코더 Nomad Coders

한국인 린과 콜롬비아인 니꼴라스의 프로젝트 "노마드 코더" 입니다. 2015년 떠나, 현재까지 원하는 곳에서 일하며, 살고 있습니다. + + Nomad Academy: https://nomadcoders.co

www.youtube.com


 

#3.0 ~ #3.6은 Django를 이용하는 강의로 차후에 업데이트 예정입니다.

#4.1 Introduction to Flask & #4.2 Dynamic URLs and Templates

 

  1) Flask 란?

    -. 파이썬을 이용하여 웹 어플리케이션(웹 서버)을 만드는 "마이크로 웹 프레임워크"입니다.

    -. 다른 파이썬의 웹 프레임워크로는 "Django", "Tornado" 등이 있지만 Flask는 작은 서버를 만들 때 매우 유용합니다.

 

  2) Flask 사용방법

    -. Flask 설치

        * repl.it : Packages > Flask 검색 후 Add

        * Local : pip install flask

    -. Flask 패키지 Import 및 사용 준비

from flask import Flask

app = Flask("test")

@app.route("/")
def home():
    return "Hello World!!"

# 외부 접속 가능 (본인 IP:5000)
app.run(host="0.0.0.0")

# 외부 접속 불가 (127.0.0.1:5000)
app.run()

Python으로 웹 스크래퍼 만들기 복습 9일 차 1

    -. @(데코레이터) : 바로 아래에 있는 Function을 찾아 decorate(꾸미다) 해주는 역할을 함 

    -. @app.route("/") : 해당 URL의 루트 영역에 접속 요청이 있을 시 (ex. https://mans-daily.tistory.com/)

        * @app.route("/test") : https://mans-daily.tistory.com/test  

    -. def home() : route로 진입 시 실행될 Function 설정 (route 1개당 반드시 1개의 Function이 있어야 함)

 

 

  3) Flask를 이용하여 DynamicURL 사용하기

    -. DynamicURL 이란?

        * URL을 통해 제공되는 매개변수에 의존하는 콘텐츠가 있는 웹페이지의 주소 또는 URL을 말합니다.

from flask import Flask

app = Flask("test")

@app.route("/")
def home():
    return "Hello World!!"

@app.route("/<username>")
def hello_user(username):
    return f"Hello your name is {username}"

app.run(host="0.0.0.0")

Python으로 웹 스크래퍼 만들기 복습 9일 차 2

    -. <>(placeholder) : Placeholder가 있는 위치에 있는 URL의 값을 변수로 받아옴

        * <> 사용 시 반드시 Function에서 argument로 해당 변수를 받아주어야 합니다.

    -. 이렇게 placeholder를 사용하면 URL에 입력된 값을 토대로 바로 사용할 수 있게 되는데요.

    -. 해당 값을 토대로 URL 접속 시 해당 값으로 DB를 검새하거나 다양한 방식으로 사용할 수 있습니다.

        * instagram.com/nomad_coders -> DB에서 nomad_coders를 검색하여 바로 브라우저에 출력해줍니다.

 

  4) Flask를 이용하여 html을 브라우저에 출력하기

    -. 파이썬 코드에서 바로 html 작성 : 아래 코드와 같이 return값으로 html 코드를 전송하면 됩니다.

from flask import Flask

app = Flask("test")

@app.route("/")
def home():
    return "<h1>Job Search</h1><form><input placeholder='What job do you wand?' required /><button>Search</Button></form>"

app.run(host="0.0.0.0")

Python으로 웹 스크래퍼 만들기 복습 9일 차 3

 

  5) Flask를 이용하여 html 템플릿을 작성해서 브라우저에 출력하기

    -. 위에서와 같이 html을 .py 에서 작성하는 것은 상당히 불편하기 때문에 html 템플릿을 만드는 방식을 이용합니다.

Python으로 웹 스크래퍼 만들기 복습 9일 차 4

""" main.py """

from flask import Flask, render_template

app = Flask("test")

@app.route("/")
def home():
    return render_template(
        "home.html"
    )

app.run(host="0.0.0.0")
""" templates/home.html """

<!DOCTYPE html>
<html>

<head>
	<title>Job Search</title>
</head>

<body>
	<h1>Job Search</h1>
	<form>
		<input placeholder="Search for a job?" required name="word" />
    <button>Search</button>
  </form>
</body>

Python으로 웹 스크래퍼 만들기 복습 9일 차 5

    -. 템플릿을 만들기 위해서는 "render_template"를 추가로 import 해주어야 합니다.

    -. html 코드를 바로 리턴한 것과 같은 화면이지만 html 코드를 손쉽게 불러올 수 있습니다.

 

※ 본 포스팅의 내용은 강의를 들은 후 필자의 개인적인 의견을 기재한 것으로,

   정답이 아닐 수 있음을 참고하십시오.

 


이상으로 Python으로 웹 스크래퍼 만들기 복습 9일 차를 마치겠습니다.

 

Python으로 웹 스크래퍼 만들기 복습 9일 차 6