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

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

by devraphy 2020. 8. 9.

1. Query Argument

- 구글에 들어가서 어떤 것을 검색하면 페이지가 나오고 알 수 없는 의미의 URL이 나옵니다. 예를 들어, something을 구글에서 검색하면 아래와 같은 URL을 얻게 되죠. 

- 이 URL을 분석해보면 /search 라는 경로에 들어갔고 제가 검색한 단어(q=something), 제가 크롬을 사용한다는 것을 알 수 있습니다(aqs=chrome). 이 이외의 다른 부분의 의미는 모르지만 이와 같이 제가 검색한 단어가 URL에 표시된 것을 볼 수 있습니다. 이런 것을 Query Argument라고 합니다. 저의 검색어가 매개변수로써 URL에 작동하는 것이죠. 그렇다면 간단하게 만들어 보겠습니다. 

- form을 사용해서 /report라는 경로를 설정하고 get방식을 이용하였습니다. 중요한 data를 전송하는 것이 아니기 때문에 post방식이 아니라 get방식을 사용한거죠. 그리고 required name을 사용해서 word로 설정하였습니다. required name은 속성으로 URL에서 작동하는 input값에 대한 매개변수라고 생각하시면 될 것 같습니다. 이제 main에서 실행해서 어떻게 작동하는지 알아보겠습니다. * get과 post 방식에 대해 잘 모르시는 분들은 html공부나 해당 강좌를 먼저 듣기를 권장드립니다. 

main.py의 코드입니다

- 이 URL에서는 어떤 정보를 얻을 수 있을까요? /report라는 경로로 이동하였고 java라는 단어를 검색했군요.  그렇다면 이걸 이용해서 사용자가 검색한 단어가 무엇인지 함수의 매개변수로 받아오는 방법을 알아봅시다. 


2. 사용자 검색어 받아오기

- 우리가 인터넷에 접속하는 행위는 모두 요청(Request)입니다. 예를 들어, 구글에 접속할 때는 구글서버에게 요청하는 것이고 어떤 자료를 다운을 받을 때 해당 자료를 갖고 있는 서버에게 요청하는 것이죠. 동일한 원리로 웹페이지에서 사용자가 검색한 단어를 알고 싶다면 그 단어를 알려달라고 요청해야 합니다. 그러므로 request가 필요하겠죠. 

- 이렇게 위의 코드를 실행해서 웹페이지에 검색을 하면 프롬프트에 어떤 단어가 검색되었는지 출력됩니다. 이제 request.args.get('word)를 변수에 담아서 이용할 수 있겠네요. 해봅시다. 

코드를 실행했을 때 나온 결과입니다. Java를 검색했습니다. 

 

 

- 이제 어떻게 검색 단어를 추출하는지 알았으니 /report에 출력될 html을 만들고 검색 단어를 report.html에게 전달하는 법을 알아봅시다. 아래 사진을 참고해주세요. 

main.py

- /report 경로로 접근하면 report 함수가 실행됩니다. 그러면 report.html이 실행될 수 있도록 함수의 return문을 이용해 검색된 단어를 searchword라는 변수에 담아서 report.html로 전달 및 실행되도록 하는 것입니다.

 

- return문에서 받아온 변수(searchword)를 report.html에서 사용하려면 이중괄호{{}} 안에 전달 받을 변수명을 넣습니다.

저는 python을 검색했는데요. 아래의 사진처럼 잘 출력됩니다. 

 

댓글