본문 바로가기
Back-end/Python Scrapper

Flask로 웹스크래퍼 만들기 - 1

by devraphy 2020. 8. 9.

- 이번 포스팅에서는 앞서 만든 웹스크래퍼를 Flask를 이용하여 웹으로 구현하는 방법을 포스팅합니다. 

1. Flask란 무엇인가?

- Flask는 파이썬을 이용해 웹사이트를 만들 수 있게 도와주는 micro-framework입니다. 기존의 Java의 Spring이나 Python의 Django와는 다르게 환경설정에 특별히 set-up해줄게 없어서 사용하기 편한 Framework입니다. 

2. Flask 다운받기 및 설치 

- 저는 repl.it이라는 사이트에서 파이썬을 이용하고 있기 때문에 설치하는데에 어려움이 없습니다. 혹시 로컬로 작업하시는 분들은 먼저 Flask 사용을 위해 환경구축을 해주세요.

 

3. 시작하기

(1) Flask 설치를 마치고 import해준 다음에 Flask의 이름을 설정합니다. 

 

app = Flask("사용할 이름 아무거나")

 

(2) app을 실행할 환경을 구성합니다. 저처럼 repl.it에서 동작할 경우 0.0.0.0으로 설정하고 본인 로컬에서 실행되는 경우에는 자신의 ip를 기입해주세요. 

 

app.run("0.0.0.0")

 

 

(3) 그리고 홈 화면의 경로를 먼저 설정해줍니다.

설명 - URL을 보면 슬래시(/)에 의해 주소가 나열되는 것을 볼 수 있는데요, 이것은 일종의 디렉토리(폴더)의 경로를 의미합니다. 예를 들어, 네이버.com이 메인 URL 주소라면 컴퓨터는 네이버.com/ 이렇게 인지하는 것입니다. URL안에서 경로를 구분하기 위해 슬래시(/)를 사용하지만 슬래시 하나만 달랑 있다면 그것은 ROOT, 메인 주소를 의미합니다. 

 

@app.route("/") → 메인 주소의 경로를 설정합니다. 

def home():    → 메인 주소에서 실행할 함수를 선언합니다. 

      return "Hello, World!!!" 

 

- 이 상태에서 실행을 하게되면 위 사진처럼 메인화면에 함수가 실행되어 출력되게 됩니다. 

 

(4) 프로그램 동작을 멈추지 않은 상태(여러분의 컴퓨터가 서버이기 때문에)에서 오른쪽 출력창에 나와있는 주소를 복사하거나 새창에서 열기 버튼을 눌러서 브라우저에서 접속해보세요. 

- 이제 아래에 설정해놓은 다른 경로도 들어가보세요. 저의 경우 /contact를 설정했는데요. 사용법은 여러분의 URL주소에 /contact만 붙이면 됩니다. ex) URL주소/contact


4. Dynamic URL 사용하기 

- Dynamic URL이란 입력값에 의해 동적으로 반응하는 URL을 의미합니다. 여기서는 간단한 예제로 만들어보겠습니다. 아래의 사진을 참고해주세요. 

- 위의 사진처럼, /뒤에 <> 괄호를 넣어서 괄호 안에 들어가는 부분이 URL로써 작동하게 되는 방식입니다.  여기서 중요한 부분은 함수에 들어가는 매개변수의 이름과 <>괄호에 들어가는 변수의 이름이 동일해야 한다는 것입니다. 결과는 아래와 같이 나옵니다.


5. HTML 사용하기 

-웹 사이트를 만들 때, 가장 많이 사용되는 기술이 바로 HTML입니다. 웹사이트의 구조를 잡는 역할을 하죠. Flask에서도 html을 지원합니다. 아래의 사진을 참고해주세요.

- 위의 사진처럼, root의 위치에 출력될 내용을 html을 이용하였습니다. 하지만 가독성이 많이 떨어지고 태그가 String형식으로 들어가다보니 구조를 파악하고 추후에 수정에도 불편하게 됩니다. 이를 보완할 수 있도록 Flask에서는 template이라는 기능을 제공하는데요. 같은 프로젝트 안에 template이라는 폴더를 만들고 그 안에 html파일을 생성하여 불러오는 것입니다. 아래의 사진을 참고해주세요. 

- 위의 사진처럼 templates라는 폴더를 만들고 내부에 html파일을 작성합니다. 여기서 중요한 점은 반드시 폴더 이름이 templates 여야 한다는 것입니다. 다른 이름을 넣으면 Flask가 인식하지 못하여 해당 html파일을 찾을 수 없다는 오류가 발생합니다. 이제 해당 파일을 main에서 불러와 보겠습니다. 

 

- 이렇게만 하면 모든 준비는 완료되었습니다. 실행을 하면 아래와 같은 결과를 출력합니다. 

- 이제 이 기능을 이용해서 저번 포스팅에서 만들었던 파이썬 스크래퍼를 Flask와 연동해보겠습니다. 

댓글