Питхон-ова једноставност и прилагодљивост помогли су му да стекне популарност током година. Можете лако да преузмете корисне податке преко интернета помоћу Питхон-а. Затим можете користити те податке за практичну примену.

Научите како да пронађете временске податке у реалном времену користећи веб скрапинг и АПИ-је. Можете користити ове преузете податке да бисте развили једноставну апликацију за временске прилике.

Добијте тренутне временске податке за град користећи Веб Сцрапинг

Веб сцрапинг је процес издвајања података и садржаја са веб локације. Аутономно преузимање података са веба отвара много случајева коришћења. Али већина ових података је у ХТМЛ формату, који морате рашчланити и прегледати да бисте издвојили релевантне податке.

Можете извући податке о времену уживо за било који град користећи веб стругање. Питхонова библиотека БеаутифулСоуп је библиотека која се користи за извлачење података из ХТМЛ и КСМЛ датотека. Морате да инсталирате БеаутифулСоуп Питхон библиотеку преко пип-а да бисте започели процес стругања. Покрените следећу команду у терминалу да бисте инсталирали БеаутифулСоуп и библиотеке захтева:

instagram viewer

пип инсталирај беаутифулсоуп4 рекуестс

Након што инсталирате потребне библиотеке, почните тако што ћете их увести у свој код:

Код који се користи у овом пројекту доступан је у а ГитХуб спремиште и бесплатан је за коришћење под МИТ лиценцом.

из бс4 увоз БеаутифулСоуп
увоз захтева

Затим морате да наведете детаље заглавља како би клијент и сервер могли да проследе додатне информације са ХТТП захтевом или одговором:

заглавља = {
'Кориснички агент': 'Мозилла/5.0 (Виндовс НТ 10.0; Вин64; к64) АпплеВебКит/537.36 (КХТМЛ, као Гецко) Цхроме/58.0.3029.110 Сафари/537.3'
}

Направите функцију, финд_веатхер(), да поставите упит Гоогле-у помоћу рекуестс.гет() методом. Користићете УРЛ за претрагу да бисте добили временску прогнозу за град, а затим ћете извући значајне податке да бисте добили локацију, температуру, време и опис времена. Затим користите БеаутифулСоуп да рашчланите примљени ХТМЛ одговор:

деффинд_веатхер(Име Град):
цити_наме = цити_наме.реплаце("", "+")

покушати:
рес = рекуестс.гет(
ф'https://www.google.com/search? к={име_града}&ок={име_града}&акс=цхроме.0.35и39л2ј0л4ј46ј69и60.6128ј1ј7&соурцеид=цхроме&тј.=УТФ-8', заглавља=заглавља)

штампа ("Учитавање...")

супа = БеаутифулСоуп (рес.тект, 'хтмл.парсер')
локација = супа.селецт('#воб_лоц')[0].гетТект().стрип()
време = супа.селецт('#воб_дтс')[0].гетТект().стрип()
инфо = супа.селецт('#воб_дц')[0].гетТект().стрип()
температура = супа.селецт('#воб_тм')[0].гетТект().стрип()

штампа ("Локација: " + локација)
штампа ("температура: " + температура + "°Ц")
штампа ("Време: " + време)
штампа ("Опис времена: " + инфо)
осим:
штампа ("Унесите важећи назив града")

Да бисте издвојили ИД-ове елемената, извршите Гоогле претрагу и прегледајте страницу у свом претраживачу помоћу веб алата. Морате да прегледате елемент да бисте пронашли ИД-ове ХТМЛ елемента за који желите да издвојите податке:

Затим проследите ове ИД-ове на изаберите() методом. Овај метод покреће ЦСС селектор против рашчлањеног документа и враћа све одговарајуће елементе. Тхе гетТект() метод издваја текст из ХТМЛ елемента. Тхе трака() метода уклања све почетне и задње знакове размака из текста. Када издвојите чисту вредност, можете је сачувати у променљивој.

На крају, замолите корисника да унесе град и проследи га на финд_веатхер функција:

цити_наме = инпут("Унесите име града: ")
име_града = име_града + " временске прилике"
финд_веатхер (име_града)

Сада, када покренете код, од вас ће бити затражено да унесете име града. Морате да унесете важећи назив града да бисте добили резултате или ће код изазвати изузетак.

Добијте тренутне податке о времену за град користећи ОпенВеатхерМап АПИ

ОпенВеатхерМап је онлајн услуга у власништву ОпенВеатхер Лтд. Његов АПИ пружа глобалне временске податке, укључујући тренутно време, прогнозе и прошле податке за било коју локацију. Бесплатни ниво ОпенВеатхерМап АПИ-ја пружа тренутне временске податке са ограничењем од 60 позива у минути. Морате да направите налог на ОпенВеатхерМап-у да бисте добили свој АПИ кључ.

Немојте гурати код са АПИ кључем у јавно спремиште јер свако ко има приступ вашим изворним датотекама може да види и украде ваш кључ. Узмите у обзир у производној апликацији премештање података АПИ кључа у .енв датотеку ради побољшане безбедности.

Иди на ОпенВеатхерМап'с веб локацију и направите бесплатан налог. Након креирања налога, можете пронаћи своје АПИ кључеве на Моји АПИ кључеви страна. Можете да користите подразумевани АПИ кључ који обезбеђује ОпенВеатхерМап или да генеришете сопствени. ОпенВеатхерМап пружа подршку за генерисање онолико АПИ кључева колико је потребно за ваше пројекте.

Сада сте спремни да преузмете податке о времену уживо.

# Увоз библиотека
увоз захтева
увоз јсон

# Унесите свој ОпенВеатхерМап АПИ кључ овде
# НЕМОЈТЕ га гурати у јавно спремиште
АПИ_Кеи = "Ваш_АПИ_Кеи"

# Наведите важећи назив града
цити_наме = инпут("Унесите име града: ")

# Израда УРЛ путање АПИ-ја
урл = ф"http://api.openweathermap.org/data/2.5/weather? к={име_града}&аппид={АПИ_Кеи}"

# Прављење захтева за добијање АПИ-ја
одговор = рекуестс.гет (урл)

# Конвертовање ЈСОН одговора у речник
рес = респонсе.јсон()

# Декоментирајте следећи ред да бисте видели све
# података који се преузимају из АПИ-ја
# штампа (рес)

# Проверавам да ли је град пронађен
# Ако вредност "цод" није 404,
# то значи да је град пронађен
ако рес ["цод"] != "404":
подаци = рес["главни"]

# Чување података о температури уживо
ливе_температуре = подаци["темп"]

# Чување података о притиску уживо
ливе_прессуре = подаци["притисак"]
десц = рес["временске прилике"]

# Чување описа времена
веатхер_десцриптион = десц[0]["Опис"]
штампа ("Температура (у Келвиновој скали): " + стр (жива_температура))
штампа ("притисак: " + стр (ливе_прессуре))
штампа ("Опис: " + стр (опис_времена))

друго:
# Ако град није пронађен,
# овај блок кода ће бити извршен
штампа ("Унесите важећи назив града")

Ако наведете важећи АПИ кључ и унесете тачно име града, добићете податке од АПИ-ја у ЈСОН формату. Затим морате да конвертујете ове податке у ЈСОН формату у Питхон објекат користећи јсон() метода за обављање даљих операција. Ако се град пронађе, мораћете да решите објекат дицт (рес) за издвајање потребних информација.

Развијте апликацију за временску прогнозу користећи податке о времену уживо

Сада када сте научили како да преузмете податке уживо користећи ОпенВеатхерМап АПИ, спремни сте да развијете једноставну апликацију за временску прогнозу користећи га. Израда апликације за временске прилике може вам помоћи да примените оно што знате и усавршите своје Питхон вештине.

Прљање руку на практичним пројектима може вас учинити бољим програмером. Можете да развијете неке друге Питхон пројекте као што су систем за пријављивање, апликација за квиз или скраћивач УРЛ-ова да бисте учврстили своје вештине развоја Питхон-а.