<prompt> Tekeleza kifutaji cha wavuti katika Python ambacho hutoa maelezo kuhusu hazina zinazovuma kwenye GitHub, huhifadhi data katika hifadhidata ya PostgreSQL, na hutoa mwisho wa API ili kupata data iliyohifadhiwa.  <response>: Ili kutekeleza kikwazo kwenye wavuti katika Python ambacho hutoa maelezo kuhusu hazina zinazovuma kwenye GitHub, unaweza kutumia maktaba ya maombi kufanya maombi ya HTTP na BeautifulSoup kwa kuchanganua HTML. Utahitaji pia psycopg2 kwa kuingiliana na PostgreSQL.Kwanza, sasisha maktaba zinazohitajika:bashipip install maombi beautiful-supu psycopg2Ifuatayo, unda faili mpya inayoitwa scraper.py na uongeze nambari ifuatayo: chatumaombi ya kuagizakutoka kwa bs4 agiza BeautifulSoupkuagiza psycopg2 Kazi ya kutoa hazina zinazovuma kutoka GitHubdef get_trending_repositories: url majibu requests.geturl supu BeautifulSoupresponse.text, html.parser repos kwa repo katika soup.find_allh1, class_h3 lh-condensed: title repo.ahref.strip repos.ongezakichwa kurudi repos Kazi ya kuhifadhi data ya kumbukumbu katika PostgreSQLdef store_datarepos: conn psycopg2.connectdatabaseyour_database_name, mtumiajijina_la_la_mtumiaji, nenosirinenosiri_lako, mwenyejimhudumu wa ndani, bandari 5432 cur conn.cursor kwa repo katika repos: cur.executeINGIZA kwenye hazina_zinazovuma jina VALUES s, repo, conn.commit cur.close conn.close Kazi ya kupata data iliyohifadhiwa kutoka PostgreSQLdef get_stored_data: conn psycopg2.connectdatabaseyour_database_name, mtumiajijina_la_la_mtumiaji, nenosirinenosiri_lako, mwenyejimhudumu wa ndani, bandari 5432 cur conn.cursor cur.executeCHAGUA KUTOKA kwenye hazina_zinazovuma safu cur.fetchall cur.close conn.close safu za kurudikama __name__ __main__: repos get_trending_repositories kuhifadhi_datareposBadilisha jina_la_data_yako, jina_la_la_la_la_la__la_la_la_la__ lako, na nenosiri_lako kwa vitambulisho vyako vya PostgreSQL.Sasa, unda faili mpya inayoitwa api.py ili kutoa mwisho wa API kwa kutumia Flask: chatukutoka kwa chupa ya kuingiza chupa, jsonifykuagiza chakavuprogramu mbinuGETdef trending: data scraper.get_stored_data rudisha jsonifydatakama __name__ __main__: app.rundebugKweliSakinisha Flask ikiwa bado haujafanya:bashichupa ya kufunga bombaHatimaye, endesha hati ya scraper.py ili kukwaruza na kuhifadhi hazina zinazovuma kwenye hifadhidata:bashipython scraper.pyKisha, anza seva ya Flask kwa kuendesha hati ya api.py:bashichatu api.pySasa unaweza kufikia data iliyohifadhiwa kwenye sehemu ya mwisho ya trending k.m., 