Föreställ dig en tidig morgon där du smuttar på en varm kopp färskt kaffe och din dator läser upp de senaste rubrikerna för dig – helt på egen hand. Låter inte det fantastiskt?
Tja, med Python kan du bygga din alldeles egna, personliga nyhetsläsare, som läser upp alla de främsta rubrikerna åt dig, tillsammans med utdragen från varje rubrik. Ja det stämmer. Genom att använda rätt bibliotek kan du få Python att göra alla dina morgonrutiner, utan att behöva läsa varje ord på egen hand.
Så här kan du skriva den här koden och anpassa den till din favoritnyhetswebbplats.
Förutsättningar för att köra koden
Innan du hoppar in och börjar skriva koden måste du uppfylla några förutsättningar. Detta är några mycket grundläggande krav, som kan göra användningen av Python enklare och mer effektiv.
- Pytonorm: Att ha den senaste versionen av Python installerad skulle vara ett bra beslut. Du kan installera vilken Python IDE som helst för bästa resultat.
- Nyhetswebbplats/internetåtkomst: Eftersom Python-koden läser de översta rubrikerna från din favoritwebbplats måste du se till att du kan komma åt webbplatsen medan du kör den här koden.
Hela koden är skriven i Jupyter Notebook, en populär Python IDE för denna guide. Dessutom är India Todays nyhetswebbplats kodad i exempelkoden.
För att ladda ner Jupyter Notebook kan du antingen använda den som en del av anaconda-paketet eller ladda ner en fristående version på ditt system.
Ladda ner:Anakonda | Jupyter anteckningsbok
Utan vidare, låt oss gräva djupare in i koden.
Att skriva koden i Python
För att börja måste du importera några Python-bibliotek, som vart och ett har olika syften.
importera win32com.client som wincl
från urllib.request importera urlopen som ureq
från bs4 importera BeautifulSoup som soppa
sp = wincl. Dispatch("SAPI.spVoice")
Var:
- win32com.client: Det här biblioteket interagerar med Windows-enheter och kör Python-program sömlöst.
- urllib.request: Detta bibliotek hanterar URL-värden från förfrågningsmodulen.
- bs4: BS4-biblioteket innehåller Beautiful Soup-funktionen, som skrapar data från webbplatser som använder Python.
- sp = wincl. Dispatch("SAPI.spVoice"): Aktivera röstkommandon i Windows.
Den här koden fungerar endast på Windows, eftersom du kommer att anropa win32.com.client-biblioteket.
Därefter måste du definiera webbadressen (länken) till webbplatsen inom url variabel, som lagras i Pythons minne.
url = https://www.indiatoday.in/top-stories
Skapa en ny variabel klient för att lagra URL-öppningskommandot.
klient = ureq (url)
print (klient)
var:
- klient: Ny variabel.
- ureq: Python-funktionen importerad från urllib.request, som öppnar den lagrade webbadressen.
Eftersom du har öppnat URL: en i minnet är det dags att kontrollera om webbplatsen i fråga tillåter osäkra anslutningar via Python. Du kan skriva ut klientvariabeln och kontrollera utdata.
Det finns två möjligheter med utskriftskommandot:
- HTTP-fel: När en webbplats är säker kan du inte skrapa innehållet med Python.
- Kodavsnitt: Om ett kodavsnitt returneras efter att webbplatsen har körts, anta att du enkelt kan dra rubrikerna.
När du har definierat webbadressen till nyhetswebbplatsen i URL-kommandot är det dags att importera HTML-koden till en variabel.
page_html = client.read()
print (page_html)
Du måste skriva ut webbplatsens HTML-kod som importeras till Python som ett försiktighetssteg. Du kan till och med matcha denna kod med webbplatskoden som finns tillgänglig under Inspektera alternativ.
Innan du konverterar koden måste du stänga webbplatsen från Pythons minne genom att använda kommandot stäng.
client.close()
Eftersom du har HTML-koden importerad till en Python-variabel måste du konvertera den till ett Python-läsbart format för att tillämpa hitta och hitta alla kommandon för att leta efter nyckelord.
Du kan skicka följande kommando för att konvertera HTML-koden:
page_soup = soppa (page_html, "html.parser")
Var:
- sida_soppa: Ny variabel.
- soppa: Alias för Vacker soppmodul.
- page_html: Variabel som innehåller HTML-koden från webbplatsen.
- html_parser: Standardsyntax för att konvertera HTML-koden.
När koden är klar att användas är det dags att undersöka webbplatsens HTML-kod för att börja leta efter rubriksökord.
För att göra det, högerklicka var som helst på webbplatsen och klicka på Inspektera. Detta öppnar HTML-koden för webbplatsen i fråga.
Bläddra runt i webbplatsens kodfönster tills du hittar behållartaggarna som lagrar rubrikerna.
Dessa finns i visa-innehåll taggar på webbplatsen India Today. Varje nyhetswebbplats behållare varierar, men du bör kunna navigera genom koden med relativ lätthet.
articles = page_soup.find("div", { "class": "view-content" })
Slutligen måste du fånga undertaggarna, som innehåller huvudrubrikerna som Python kommer att läsa upp för dig.
articles = articles.findAll("div", {"class": "catagory-listing"})
Behållaren för visningsinnehåll kommer att innehålla flera rubriker, det yttre skalet för dina rubriker.
För att fånga H2-taggarna och utdragen som listas med varje rubrik måste du köra en loop.
i = 1
för x i artiklar:
title = x.find("h2").text
para = x.find("p").text
print (i, titel, "
", "
", para",
", "
")
sp. Tala (titel)
sp. Tala (para)
i=i+1
Var:
- jag: Ny räknarvariabel, som automatiskt ökas.
- titel: Ny variabel för att spara rubriken (h2).
- para: Ny variabel för att hålla styckena associerade med varje H2.
- skriva ut: Rubrikens titel och paragraf kommer att skrivas ut på Python-gränssnittet.
- sp. Tala (Titel): Python kommer att läsa upp varje lagrad titel.
- sp. Tala (para): Python läser upp varje lagrat styckeutdrag.
- i = i+1: Detta kommando ökar automatiskt serienumret som är associerat med varje rubrik som visas på Pythons gränssnitt.
Använder Pythons vackra soppmodul för att läsa dina dagliga nyheter
Varje gång du kör koden kommer färska rubriker från nyhetswebbplatsen att laddas ner innan de läses upp. Python exekverar koden varje gång du kör uppsättningen koder, och håller dig därmed uppdaterad med ändringarna på webbplatsen.
De äldre rubrikerna kommer att fortsätta att visas och läsas upp av Python tills du uppdaterar och kör koden igen.
Det är enkelt att använda Python för att läsa upp dina dagliga rubriker
Python, som ett språk med öppen källkod, erbjuder en serie verktyg som Beautiful Soup, Selenium och andra ramverk – för både nybörjare och avancerade användare.
Om du vill få dina dagliga nyheter levererade med röst, gör Python det enkelt. Att lära sig just detta språk kan också hjälpa dig att bli en bättre programmerare på alla områden.
Oavsett om du behöver Python-verktyg för datavetenskap, maskininlärning, webbutveckling eller något däremellan, har den här listan dig täckt.
Läs Nästa
- Programmering
- Pytonorm
- Nyheter
- Datortips
- Programmering
Gaurav Siyal har två års erfarenhet av att skriva, skriva för en rad digitala marknadsföringsföretag och programvarulivscykeldokument.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera