-
search.htmlProject using python/Jobs scrapper 2020. 12. 21. 13:44
main.py
// main.py from flask import Flask, render_template, redirect, request from scrapperJobs import get_jobs db={} @app.route('/search') def search(): try: word = request.args.get('term') if word: word = word.lower() if word in db: jobs = db[word] else: jobs = get_jobs(word) db[word]=jobs else: redirect("/") return render_template("search.html", resultsNumber=len(jobs),searchingBy=word, jobs=jobs) except IOError: return redirect("/")
Flask library에서 request는 사용자로부터 오는 값을 처리할 수 있다. request.args.get('term')은 query string을 받을 수 있는 method다.
사용자로부터 programmig language에 대한 변수를 받고 DataBase에 해당 값이 있는지 확인한다. 없다면 해당 값을 get_jobs()를 통해서 jobs를 scrap하고 db에 저장한다. 마지막으로 총 일자리 갯수, 찾으려는 language와 jobs를 함께 search.html을 랜더링한다.
search.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <link href="https://andybrewer.github.io/mvp/mvp.css" rel="stylesheet"></link> </head> <body> <header> <h1>Remote Jobs</h1> <h3>{{resultsNumber}} {{searchingBy}} jobs found.</h3> <h5> <a href="/export?word={{searchingBy}}">Export to CSV</a> </h5> <h6> <a href="/">Go back</a> </h6> </header> <main> {% for job in jobs %} <div> <h3>{{job.title}}</h3> <h4>{{job.company}}</h4> <h4>{{job.location}}</h4> <a href="{{job.link}}" target="_blank">Apply</a> <hr /> </div> {% endfor%} </main> </body> </html>
Flask로 html 파일을 랜더링하면 html 파일에서 {% for job in jobs %}같이 파이썬 문법을 사용할 수 있다.
참고 자료
소스 코드
github.com/zpskek/web_scraper-v2/commit/63bdc5da1bd8364fbae99a53ac6409e889f3c369
'Project using python > Jobs scrapper' 카테고리의 다른 글
Extract reddit's posts and make export.html with Flask framework (0) 2020.12.21 export.html with Flask framework (0) 2020.12.21 home.html with Flask framework (0) 2020.12.21 Scrap remote.com (0) 2020.12.21 Scrap WeWorkRemotely (0) 2020.12.21