| import os |
| from flask import Flask, render_template, request, redirect, url_for |
| from serpapi import GoogleSearch |
| from dotenv import load_dotenv |
|
|
| |
| load_dotenv() |
|
|
| app = Flask(__name__) |
|
|
| |
| SERPAPI_API_KEY = os.getenv("SERPAPI_API_KEY") |
|
|
| |
| if not SERPAPI_API_KEY: |
| raise ValueError("Tidak ada SERPAPI_API_KEY di file .env Anda!") |
|
|
| @app.route('/') |
| def index(): |
| """Menampilkan halaman utama dengan form pencarian.""" |
| return render_template('index.html') |
|
|
| @app.route('/cari', methods=['POST']) |
| def cari(): |
| """Memproses form, memanggil SerpApi, dan menampilkan hasil.""" |
| topik = request.form.get('topik') |
| tahun_awal = request.form.get('tahun_awal') |
| tahun_akhir = request.form.get('tahun_akhir') |
| jumlah_data = request.form.get('jumlah_data', 10, type=int) |
|
|
| if not topik: |
| |
| return redirect(url_for('index')) |
|
|
| |
| params = { |
| "engine": "google_scholar", |
| "q": f'"{topik}" pertambangan', |
| "hl": "id", |
| "num": jumlah_data, |
| "as_ylo": tahun_awal, |
| "as_yhi": tahun_akhir, |
| "api_key": SERPAPI_API_KEY |
| } |
|
|
| |
| search = GoogleSearch(params) |
| results = search.get_dict() |
| |
| |
| organic_results = results.get("organic_results", []) |
|
|
| |
| return render_template( |
| 'hasil.html', |
| results=organic_results, |
| query=topik, |
| total_results=results.get("search_information", {}).get("total_results", 0) |
| ) |
|
|
| if __name__ == '__main__': |
| app.run(debug=True) |