Kesederhanaan dan kemampuan beradaptasi Python telah membantunya mendapatkan popularitas selama bertahun-tahun. Anda dapat dengan mudah mengambil data yang berguna melalui internet dengan Python. Anda kemudian dapat menggunakan data tersebut untuk menjalankan aplikasi praktis.
Pelajari cara menemukan data cuaca waktu nyata menggunakan pengikisan web dan API. Anda dapat menggunakan data yang diambil ini untuk mengembangkan aplikasi cuaca sederhana.
Dapatkan Detail Cuaca Terkini dari Kota Menggunakan Web Scraping
Pengikisan web adalah proses mengekstraksi data dan konten dari situs web. Mengambil data secara mandiri dari web membuka banyak kasus penggunaan. Tetapi sebagian besar data ini dalam format HTML, yang perlu Anda parsing dan periksa untuk mengekstrak data yang relevan.
Anda dapat mengekstraksi data cuaca langsung dari kota mana pun menggunakan pengikisan web. Pustaka BeautifulSoup Python adalah pustaka masuk untuk menarik data dari file HTML dan XML. Anda perlu menginstal pustaka BeautifulSoup Python melalui pip untuk memulai proses scraping. Jalankan perintah berikut di terminal untuk menginstal BeautifulSoup dan meminta pustaka:
pip Install permintaan beautifulsoup4
Setelah Anda menginstal pustaka yang diperlukan, mulailah dengan mengimpornya ke dalam kode Anda:
Kode yang digunakan dalam proyek ini tersedia di a repositori GitHub dan gratis untuk Anda gunakan di bawah lisensi MIT.
dari bs4 impor Sup Cantik
impor permintaan
Selanjutnya, Anda perlu memberikan detail tajuk sehingga klien dan server dapat menyampaikan informasi tambahan dengan permintaan atau tanggapan HTTP:
tajuk = {
'Agen pengguna': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
Buat fungsi, temukan_cuaca(), untuk membuat kueri ke Google menggunakan permintaan.dapatkan() metode. Anda akan menggunakan URL penelusuran untuk mendapatkan cuaca kota, lalu mengumpulkan data yang berarti untuk mendapatkan deskripsi lokasi, suhu, waktu, dan cuaca. Kemudian, gunakan BeautifulSoup untuk mem-parsing respons HTML yang diterima:
deffind_weather(nama Kota):
nama_kota = nama_kota.ganti("", "+")mencoba:
res = permintaan.dapatkan(
F'https://www.google.com/search? q={nama_kota}&oq={nama_kota}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&yaitu = UTF-8', tajuk=tajuk)mencetak("Memuat...")
sup = BeautifulSoup (res.text, 'html.parser')
lokasi = sup.pilih('#wob_loc')[0].getText().strip()
waktu = sup.pilih('#wob_dts')[0].getText().strip()
info = sup.pilih('#wob_dc')[0].getText().strip()
suhu = sup.pilih('#wob_tm')[0].getText().strip()
mencetak("Lokasi: " + lokasi)
mencetak("Suhu: " + suhu + "°C")
mencetak("Waktu: " + waktu)
mencetak("Deskripsi Cuaca: " + informasi)
kecuali:
mencetak("Masukkan nama kota yang valid")
Untuk mengekstrak ID elemen, lakukan penelusuran Google dan periksa halaman di browser Anda menggunakan alat web. Anda perlu memeriksa elemen untuk menemukan ID elemen HTML yang ingin Anda ekstrak datanya:
Selanjutnya, berikan ID ini ke Pilih() metode. Metode ini menjalankan pemilih CSS terhadap dokumen yang diurai dan mengembalikan semua elemen yang cocok. Itu getText() metode mengekstrak teks dari elemen HTML. Itu mengupas() metode menghapus karakter spasi putih di depan dan di belakang dari teks. Setelah Anda mengekstraksi nilai bersih, Anda dapat menyimpannya dalam variabel.
Terakhir, minta pengguna untuk memasukkan kota dan meneruskannya ke find_weather fungsi:
nama_kota = masukan("Masukkan Nama Kota: ")
nama_kota = nama_kota + " cuaca"
find_weather (nama_kota)
Sekarang, ketika Anda menjalankan kode, itu akan meminta Anda untuk memasukkan nama kota. Anda harus memasukkan nama kota yang valid untuk mendapatkan hasil atau kode akan memunculkan pengecualian.
Dapatkan Detail Cuaca Terkini dari Kota Menggunakan OpenWeatherMap API
OpenWeatherMap adalah layanan online, dimiliki oleh OpenWeather Ltd. API-nya menyediakan data cuaca global termasuk cuaca saat ini, prakiraan, dan data sebelumnya untuk lokasi mana pun. Tingkat gratis API OpenWeatherMap menyediakan data cuaca saat ini dengan batas 60 panggilan/menit. Anda perlu membuat akun di OpenWeatherMap untuk mendapatkan kunci API Anda sendiri.
Jangan dorong kode dengan kunci API ke repositori publik karena siapa pun yang memiliki akses ke file sumber Anda dapat melihat dan mencuri kunci Anda. Dalam aplikasi produksi, pertimbangkan memindahkan data kunci API ke file .env untuk keamanan yang ditingkatkan.
Pergi ke OpenWeatherMap situs web dan buat akun gratis. Setelah membuat akun, Anda dapat menemukan kunci API Anda di Kunci API saya halaman. Anda dapat menggunakan kunci API default yang disediakan oleh OpenWeatherMap atau membuatnya sendiri. OpenWeatherMap menyediakan dukungan untuk menghasilkan kunci API sebanyak yang diperlukan untuk proyek Anda.
Sekarang, Anda siap mengambil data cuaca langsung.
# Mengimpor perpustakaan
impor permintaan
impor json# Masukkan kunci API OpenWeatherMap Anda di sini
# JANGAN dorong ke repositori publik
API_Key = "Kunci_API_Anda"# Berikan nama kota yang valid
nama_kota = masukan("Masukkan nama kota: ")# Membangun jalur URL API
url = f"http://api.openweathermap.org/data/2.5/weather? q={nama_kota}&appid={API_Key}"# Membuat permintaan dapatkan ke API
respon = permintaan.dapatkan (url)# Mengonversi respons JSON ke kamus
res = respon.json()# Batalkan komentar pada baris berikutnya untuk melihat semuanya
# data yang diambil dari API
# cetak (res)# Memeriksa apakah kota ditemukan
# Jika nilai "cod" bukan 404,
# itu berarti kota ditemukan
jika res["ikan kod"] != "404":
data = res["utama"]# Menyimpan data suhu langsung
suhu_langsung = data["suhu"]# Menyimpan data tekanan langsung
live_pressure = data["tekanan"]
desc = res["cuaca"]# Menyimpan deskripsi cuaca
deskripsi_cuaca = desc[0]["keterangan"]
mencetak("Suhu (dalam skala Kelvin): " + str (suhu_langsung))
mencetak("Tekanan: " + str (tekanan_langsung))
mencetak("Keterangan: " + str (dekripsi_cuaca))
kalau tidak:
# Jika kota tidak ditemukan,
# blok kode ini akan dieksekusi
mencetak("Masukkan nama kota yang valid")
Jika Anda memberikan kunci API yang valid dan memasukkan nama kota yang benar, Anda akan menerima data dari API dalam format JSON. Selanjutnya, Anda perlu mengonversi data format JSON ini menjadi objek Python menggunakan metode json() metode untuk melakukan operasi lebih lanjut. Jika kota ditemukan, Anda harus menyelesaikan objek dict (res) untuk mengekstrak informasi yang diperlukan.
Kembangkan Aplikasi Cuaca Menggunakan Data Cuaca Langsung
Sekarang setelah Anda mempelajari cara mengambil data langsung menggunakan API OpenWeatherMap, Anda siap mengembangkan aplikasi cuaca sederhana dengan menggunakannya. Membangun aplikasi cuaca dapat membantu Anda menerapkan apa yang Anda ketahui dan mengasah keterampilan Python Anda.
Membuat tangan Anda kotor pada proyek-proyek praktis dapat membuat Anda menjadi pengembang yang lebih baik. Anda dapat mengembangkan beberapa proyek Python lainnya seperti sistem login, aplikasi kuis, atau pemendek URL untuk memperkuat keterampilan pengembangan Python Anda.