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

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

by devraphy 2020. 8. 10.

1. 검색결과를 CSV파일로 다운받는 기능

(1) CSV파일로 다운받을 수 있도록 export 함수를 만들어줍니다. 아래 사진을 참고해주세요.  

 

 

(2) 다운로드를 받을 수 있는 링크 또는 버튼을 report.html에 만들어줍니다. 

 

 

(3) 이제 CSV로 export하는 기능을 만듭니다. 이전 포스팅에 보면 save.py라는 이름으로 이미 만들어놓은 코드가 있습니다. 그걸 다시 사용해보겠습니다.

- 저는 exporter.py라는 파일을 만들어 기존의 save.py에 있던 코드들을 복사하였습니다. 여기서 중요한 부분은 save_to_file함수를 사용하기 위해서는 jobs라는 매개변수가 필요하다는 것입니다. main으로 가서 작업해봅시다. 

 

 

(4) 사용할 새로운 함수를 import를 해주고, export함수에서 호출합니다. 

- 여기까지 만들어 놓고 실행하면 이전에 제작한 웹스크래퍼와 동일하게 job.csv라는 파일이 생성될겁니다. 

 

(5) 이제 파일을 다운받을 수 있도록 해주는 send_file()이라는 함수를 import해줍니다. Flask에 포함되어 있는 함수입니다. 

 

- send_file()함수를 이용해서 export함수의 return문에 넣어줍니다. 

- 이제 실행해봅시다. 

- 다운로드 받으면 이렇게 export라는 파일이 생성됩니다. 

- 이 부분에서 왜 파일 이름이 job.csv로 나오지 않고 export로 나오는지 의문이네요.... 

- 이리저리 찾아봐서 시도해봤지만 변경이 안됩니다. 아시는분은 저에게 댓글로 알려주시면 감사하겠습니다. 

 

- 추가로 해당파일의 이름에 .csv로 바꿔서 구글 엑셀에 import해보시면 완전한 파일로 잘 출력됩니다. 

 

- 마무리가 좀 아쉽지만 읽어주신 분들 감사합니다. 파일 이름 변경하는 부분에 대해 해결책을 찾으면 다시 업데이트 하겠습니다. 고생하셨습니다. 

 


2. 2020.08.12 업데이트

- csv파일 다운로드할 때 발생했던 파일 형식관련 문제의 해결책을 찾았습니다. send_file함수를 사용하는 부분을 아래 코드와 같이 작성해주시면 됩니다. 

 

send_file('job.csv', mimetype='application/x-csv', attachment_filename='summary_report.csv', as_attachment=True)

 

댓글