Project using python/Jobs scrapper

export.html with Flask framework

Cog Factory 2020. 12. 21. 13:49

main.py

from exporter import save_to_file

@app.route('/export')
def export():
  try:
    word = request.args.get('word')
    if not word:
      print("not word")
      raise Exception()
    word = word.lower()
    jobs = db.get(word)
    if not jobs:
      print("not jobs")
      raise Exception()

    save_to_file(jobs, word)
    return redirect("/")
  except IOError:
    print("error")
    return redirect("/")

   search.html로 원하는 일자리들을 찾은 후에 해당 일자리를 .csv 파일로 다운 받을 수 있다.

exporter.py

import csv

def save_to_file(jobs, word):
  file_name = f"{word}.csv"
  file = open(file_name, mode="w", encoding="utf-8")
  fieldnames = ["title", "company", "location", "link"]
  writer = csv.DictWriter(file, fieldnames=fieldnames)
  writer.writeheader()
  for job in jobs:
    writer.writerow(job) 

   python에서는 내장 모듈로 csv를 지원한다. word 이름으로 csv 파일을 쓰기로 연다. file과 filednames를 같이 csv.DictWriter에 넘겨준다. writer.writeheader()를 사용하면 csv.DictWriter(file, fieldnames=filednames)의 filednames가 엑셀의 table에서 tabel header로 자리를 잡는다. 마지막으로 그 밑에 writer.writerow(job)으로 table header에 해당하는 내용을 만든다.

참고 자료

소스 코드

github.com/zpskek/web_scraper-v2/commit/34ff08b9e5f1e06515fee9dca193ef8954777da1