Predstavljajte si zgodnje jutro, ko srkate vročo skodelico sveže kave, vaš računalnik pa vam bere najnovejše naslove – vse sam. Ali se to ne sliši neverjetno?
No, s Pythonom lahko ustvarite svoj lasten, prilagojen bralnik novic, ki vam bo prebral vse vrhunske naslove skupaj z odlomki vsakega naslova. Da, tako je. Z uporabo pravih knjižnic lahko Python naredite, da opravi vse vaše jutranje rutine, ne da bi morali sami prebrati vsako besedo.
Tukaj je opisano, kako lahko napišete to kodo in jo prilagodite svojemu najljubšemu spletnemu mestu z novicami.
Predpogoji za izvajanje kode
Preden skočite in začnete pisati kodo, morate izpolniti nekaj predpogojev. To je nekaj zelo osnovnih zahtev, ki lahko olajšajo in učinkovitejšo uporabo Pythona.
- Python: Namestitev najnovejše različice Pythona bi bila dobra odločitev. Za najboljše rezultate lahko namestite kateri koli Python IDE.
- Spletna stran z novicami/dostop do interneta: Ker koda Python bere najvišje naslove z vašega najljubšega spletnega mesta, morate zagotoviti, da lahko dostopate do spletnega mesta med izvajanjem te kode.
Celotna koda je napisana v priljubljenem Jupyter Notebooku Python IDE za ta vodnik. Poleg tega je spletno mesto novic India Today kodirano v vzorčni kodi.
Če želite prenesti Jupyter Notebook, ga lahko uporabite kot del paketa anaconda ali pa prenesete samostojno različico v svoj sistem.
Prenesi:Anakonda | Jupyter Notebook
Brez odlašanja se poglobimo v kodo.
Pisanje kode v Pythonu
Za začetek morate uvoziti nekaj knjižnic Python, od katerih vsaka služi različnim namenom.
uvozi win32com.client kot wincl
iz urllib.request uvoz urlopen kot ureq
iz bs4 uvozite BeautifulSoup kot juho
sp = wincl. Odprema ("SAPI.spVoice")
Kje:
- win32com.client: Ta knjižnica komunicira z napravami Windows in brezhibno izvaja programe Python.
- urllib.request: Ta knjižnica obravnava vrednosti URL-jev iz modula zahteve.
- bs4: Knjižnica BS4 vsebuje funkcijo Beautiful Soup, ki pobriše podatke s spletnih mest s Pythonom.
- sp = wincl. Odprema ("SAPI.spVoice"): Aktivirajte glasovne ukaze v sistemu Windows.
Ta koda bo delovala samo v sistemu Windows, saj boste klicali knjižnico win32.com.client.
Nato morate določiti URL (povezava) spletnega mesta znotraj url spremenljivka, ki je shranjena v pomnilniku Pythona.
url = https://www.indiatoday.in/top-stories
Ustvarite novega odjemalca spremenljivke za shranjevanje ukaza za odpiranje URL-ja.
odjemalec = ureq (url)
tiskanje (stranka)
kje:
- stranka: Nova spremenljivka.
- ureq: Funkcija Python, uvožena iz urllib.request, ki odpre shranjeni URL.
Ker ste URL odprli v pomnilniku, je čas, da preverite, ali zadevno spletno mesto omogoča nezavarovane povezave prek Pythona. Spremenljivko odjemalca lahko natisnete in preverite izhod.
Z ukazom za tiskanje sta na voljo dve možnosti:
- HTTPNapaka: Ko je spletno mesto varno, vsebine ne morete postrgati s Pythonom.
- Odrezek kode: Če se po zagonu spletnega mesta vrne odrezek kode, predpostavite, da lahko zlahka potegnete naslove.
Ko v ukazu URL definirate URL spletnega mesta z novicami, je čas, da uvozite kodo HTML v spremenljivko.
page_html = client.read()
natisni (page_html)
Kot previdnostni korak morate natisniti kodo HTML spletnega mesta, uvoženo v Python. To kodo lahko celo povežete s kodo spletnega mesta, ki je na voljo pod Preglejte možnost.
Pred pretvorbo kode morate spletno mesto zapreti iz Pythonovega pomnilnika z ukazom close.
client.close()
Ker imate kodo HTML uvoženo v spremenljivko Python, jo morate pretvoriti v berljivo obliko zapisa Python, da uporabite najti in najdi ukazi za iskanje ključnih besed.
Za pretvorbo kode HTML lahko posredujete naslednji ukaz:
page_soup = juha (page_html, "html.parser")
Kje:
- page_soup: Nova spremenljivka.
- juha: Vzdevek za Čudovit modul za juho.
- page_html: Spremenljivka, ki vsebuje kodo HTML s spletnega mesta.
- html_razčlenjevalnik: Privzeta sintaksa za pretvorbo kode HTML.
Ko je koda pripravljena za uporabo, je čas, da preučite kodo HTML spletnega mesta in začnete iskati ključne besede v naslovu.
Če želite to narediti, z desno miškino tipko kliknite kjer koli na spletnem mestu in kliknite Preveri. To bo odprlo kodo HTML za zadevno spletno mesto.
V oknu kode spletnega mesta se pomikajte naokoli, dokler ne najdete oznak vsebnika, v katerih so shranjeni naslovi.
Te so vsebovane v ogled-vsebina oznake na spletnem mestu India Today. Vsebniki vsakega spletnega mesta z novicami se razlikujejo, vendar bi morali biti sposobni krmariti po kodi z relativno lahkoto.
članki = page_soup.find("div", { "class": "view-content" })
Nazadnje morate zajeti podoznake, ki vsebujejo glavne naslove, ki vam jih bo bral Python.
članki = articles.findAll("div", {"class": "catagory-listing"})
Vsebnik za ogled vsebine bo vseboval več naslovov, zunanjo lupino za vaše naslove.
Če želite zajeti oznake H2 in odrezke, navedene ob vsakem naslovu, morate zagnati zanko.
i = 1
za x v člankih:
naslov = x.najdi("h2").besedilo
para = x.find("p").text
natisni (i, naslov, "
", "
", odstavek, "
", "
")
sp. Govori (naslov)
sp. Govori (para)
i=i+1
Kje:
- jaz: Nova spremenljivka števca, ki se bo samodejno povečala.
- naslov: Nova spremenljivka za shranjevanje naslova (h2).
- odstavek: Nova spremenljivka za shranjevanje odstavkov, povezanih z vsakim H2.
- natisniti: Naslov naslova in odstavka bosta natisnjena na vmesniku Python.
- sp. Govori (naslov): Python bo prebral vsak shranjeni naslov.
- sp. Govori (para): Python bo prebral vsak shranjeni delček odstavka.
- i = i+1: Ta ukaz samodejno poveča serijsko številko, povezano z vsakim naslovom, prikazanim v vmesniku Python.
Uporaba Pythonovega modula Beautiful Soup za branje dnevnih novic
Vsakič, ko zaženete kodo, se bodo novi naslovi s spletnega mesta z novicami naložili, preden jih boste prebrali na glas. Python izvede kodo vsakič, ko zaženete nabor kod, s čimer vas obvešča o spremembah na spletnem mestu.
Python bo še naprej prikazoval in bral starejše naslove, dokler ne osvežite in znova zaženete kode.
Uporaba Pythona za branje dnevnih naslovov je enostavna
Python kot odprtokodni jezik ponuja vrsto orodij, kot so Beautiful Soup, Selenium in drugi okvirji – tako začetnikom kot naprednim uporabnikom.
Če želite svoje dnevne novice posredovati glasu, vam Python to olajša. Učenje tega jezika vam lahko pomaga tudi postati boljši programer na vseh področjih.
Ne glede na to, ali potrebujete orodja Python za znanost o podatkih, strojno učenje, spletni razvoj ali kar koli vmes, vas ta seznam pokriva.
Preberite Naprej
- Programiranje
- Python
- novice
- Računalniški nasveti
- Programiranje
Gaurav Siyal ima dve leti izkušenj s pisanjem, pisanjem za vrsto podjetij za digitalni marketing in dokumente o življenjskem ciklu programske opreme.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite