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