Python vienkāršība un pielāgošanās spēja ir palīdzējusi tam iegūt popularitāti gadu gaitā. Izmantojot Python, varat viegli izgūt noderīgus datus internetā. Pēc tam varat izmantot šos datus, lai vadītu praktisku pielietojumu.

Uzziniet, kā atrast reāllaika laikapstākļu datus, izmantojot tīmekļa izkopšanu un API. Varat izmantot šos ienestos datus, lai izstrādātu vienkāršu laikapstākļu lietojumprogrammu.

Iegūstiet informāciju par pilsētas pašreizējiem laikapstākļiem, izmantojot tīmekļa skrāpējumu

Tīmekļa skrāpēšana ir datu un satura iegūšanas process no vietnes. Autonomā datu ielāde no tīmekļa paver daudz lietošanas gadījumu. Taču lielākā daļa šo datu ir HTML formātā, kas jums ir jāparsē un jāpārbauda, ​​lai iegūtu attiecīgos datus.

Varat iegūt jebkuras pilsētas reāllaika laikapstākļu datus, izmantojot tīmekļa nokasīšanu. Python's BeautifulSoup bibliotēka ir populāra bibliotēka lai izvilktu datus no HTML un XML failiem. Lai sāktu nokasīšanas procesu, jums ir jāinstalē BeautifulSoup Python bibliotēka, izmantojot pip. Terminālī izpildiet šo komandu, lai instalētu BeautifulSoup un pieprasījumu bibliotēkas:

pip uzstādīt skaista zupa4 pieprasījumi

Kad esat instalējis nepieciešamās bibliotēkas, sāciet, importējot tās savā kodā:

Šajā projektā izmantotais kods ir pieejams a GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

no bs4 imports Skaista zupa
imports pieprasījumus

Tālāk jums ir jānorāda galvenes informācija, lai klients un serveris varētu nodot papildu informāciju ar HTTP pieprasījumu vai atbildi:

galvenes = {
'Lietotāja aģents': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, piemēram, Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Izveidojiet funkciju, find_weather(), lai veiktu vaicājumu Google, izmantojot requests.get() metodi. Jūs izmantosiet meklēšanas URL, lai iegūtu pilsētas laikapstākļus, un pēc tam nokasīsiet nozīmīgus datus, lai iegūtu atrašanās vietu, temperatūru, laiku un laikapstākļu aprakstu. Pēc tam izmantojiet BeautifulSoup, lai parsētu saņemto HTML atbildi:

deffind_weather(pilsētas_nosaukums):
pilsētas_nosaukums = pilsētas_nosaukums.aizvietot("", "+")

mēģināt:
res = requests.get(
f'https://www.google.com/search? q={pilsētas_nosaukums}&oq={pilsētas_nosaukums}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8', headers=headers)

drukāt ("Notiek ielāde...")

zupa = BeautifulSoup (res.text, 'html.parser')
atrašanās vieta = zupa.select('#wob_loc')[0].getText().strip()
laiks = zupa.select('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
temperatūra = zupa.select('#wob_tm')[0].getText().strip()

drukāt ("Atrašanās vieta: " + atrašanās vieta)
drukāt ("Temperatūra: " + temperatūra + "°C")
drukāt ("Laiks: " + laiks)
drukāt ("Laikapstākļu apraksts: " + informācija)
izņemot:
drukāt ("Lūdzu, ievadiet derīgu pilsētas nosaukumu")

Lai izvilktu elementu ID, veiciet Google meklēšanu un pārbaudiet lapu savā pārlūkprogrammā, izmantojot tīmekļa rīkus. Elements ir jāpārbauda, ​​lai atrastu tā HTML elementa ID, par kuru vēlaties iegūt datus:

Pēc tam nosūtiet šos ID uz atlasīt () metodi. Šī metode palaiž CSS atlasītāju pret parsētu dokumentu un atgriež visus atbilstošos elementus. The getText() metode izvelk tekstu no HTML elementa. The sloksne () metode no teksta noņem visas sākuma un beigu atstarpes rakstzīmes. Kad esat ieguvis tīru vērtību, varat to saglabāt mainīgajā.

Visbeidzot, palūdziet lietotājam ievadīt pilsētu un nodot to vietnei find_weather funkcija:

pilsētas_nosaukums = ievade("Ievadiet pilsētas nosaukumu: ")
pilsētas_nosaukums = pilsētas_nosaukums + " laikapstākļi"
atrast_laika apstākļus (pilsētas_nosaukums)

Tagad, palaižot kodu, tas liks ievadīt pilsētas nosaukumu. Lai iegūtu rezultātus, jāievada derīgs pilsētas nosaukums, pretējā gadījumā kods radīs izņēmumu.

Iegūstiet pilsētas pašreizējo laikapstākļu informāciju, izmantojot OpenWeatherMap API

OpenWeatherMap ir tiešsaistes pakalpojums, kas pieder OpenWeather Ltd. Tā API nodrošina globālus laikapstākļu datus, tostarp pašreizējos laikapstākļus, prognozes un pagātnes datus par jebkuru atrašanās vietu. OpenWeatherMap API bezmaksas līmenis nodrošina pašreizējos laikapstākļu datus ar ierobežojumu 60 zvani minūtē. Lai iegūtu savu API atslēgu, vietnē OpenWeatherMap ir jāizveido konts.

Nespiediet kodu ar API atslēgu publiskai repozitorijai, jo ikviens, kam ir piekļuve jūsu avota failiem, var redzēt un nozagt jūsu atslēgu. Apsveriet ražošanas lietotnē API atslēgas datu pārvietošana uz .env failu uzlabotai drošībai.

Iet uz OpenWeatherMap's vietni un izveidot bezmaksas kontu. Pēc konta izveides savas API atslēgas varat atrast vietnē Manas API atslēgas lappuse. Varat izmantot noklusējuma API atslēgu, ko nodrošina OpenWeatherMap, vai ģenerēt kādu no savām. OpenWeatherMap nodrošina atbalstu, lai ģenerētu tik daudz API atslēgu, cik nepieciešams jūsu projektiem.

Tagad esat gatavs izgūt reāllaika laikapstākļu datus.

# Bibliotēku importēšana
imports pieprasījumus
imports json

# Šeit ievadiet savu OpenWeatherMap API atslēgu
# NELIETOJIET to publiskajā repozitorijā
API_Key = "Jūsu_API_Key"

# Norādiet derīgu pilsētas nosaukumu
pilsētas_nosaukums = ievade("Ievadiet pilsētas nosaukumu: ")

# API URL ceļa izveide
url = f"http://api.openweathermap.org/data/2.5/weather? q={pilsētas_nosaukums}&appid={API_Key}"

# Saņemšanas pieprasījuma iesniegšana API
atbilde = requests.get (url)

# JSON atbildes pārveidošana par vārdnīcu
res = atbilde.json()

# Atceliet nākamās rindiņas komentārus, lai redzētu visu
# dati, kas tiek iegūti no API
# druka (rez.)

# Pārbauda, ​​vai pilsēta ir atrasta
# Ja "mencas" vērtība nav 404,
# tas nozīmē, ka pilsēta ir atrasta
ja res["mencas"] != "404":
dati = res["galvenais"]

# Saglabā reāllaika temperatūras datus
dzīvā_temperatūra = dati["temp"]

# Tiek saglabāti tiešā spiediena dati
dzīvais_spiediens = dati["spiedienu"]
desc = res["laikapstākļi"]

# Laikapstākļu apraksta saglabāšana
weather_description = apraksts[0]["apraksts"]
drukāt ("Temperatūra (Kelvina skalā): " + str (dzīvā_temperatūra))
drukāt ("Spiediens: " + str (dzīvais_spiediens))
drukāt ("Apraksts: " + str (laika_apraksts))

cits:
# Ja pilsēta netiek atrasta,
# šis koda bloks tiks izpildīts
drukāt ("Lūdzu, ievadiet derīgu pilsētas nosaukumu")

Ja norādīsiet derīgu API atslēgu un ievadīsiet pareizo pilsētas nosaukumu, jūs saņemsit datus no API JSON formātā. Pēc tam jums ir jāpārvērš šie JSON formāta dati Python objektā, izmantojot json() metode turpmāko darbību veikšanai. Ja pilsēta tiks atrasta, jums būs jāatrisina dikta objekts (res), lai iegūtu nepieciešamo informāciju.

Izstrādājiet laikapstākļu lietojumprogrammu, izmantojot tiešos laikapstākļu datus

Tagad, kad esat iemācījies iegūt reāllaika datus, izmantojot OpenWeatherMap API, esat gatavs izstrādāt vienkāršu laikapstākļu lietojumprogrammu, izmantojot to. Laikapstākļu lietojumprogrammas izveide var palīdzēt pielietot to, ko zināt, un uzlabot savas Python prasmes.

Sasmērējot rokas ar praktiskiem projektiem, jūs varat kļūt par labāku izstrādātāju. Varat izstrādāt dažus citus Python projektus, piemēram, pieteikšanās sistēmu, viktorīnas lietotni vai URL saīsinātāju, lai nostiprinātu savas Python izstrādes prasmes.