Stelt u zich eens een vroege ochtend voor waarop u nipt aan een warme kop verse koffie, en uw computer leest u de laatste krantenkoppen voor, helemaal vanzelf. Klinkt dat niet geweldig?

Welnu, met Python kun je je eigen, gepersonaliseerde nieuwslezer bouwen, die alle hoofdkoppen voor je zal voorlezen, samen met de fragmenten van elke kop. Ja dat klopt. Door de juiste bibliotheken te gebruiken, kun je Python al je ochtendroutines laten doen, zonder dat je elk woord zelf hoeft te lezen.

Hier leest u hoe u deze code kunt schrijven en aanpassen aan uw favoriete nieuwswebsite.

Vereisten voor het uitvoeren van de code

Voordat je aan de slag gaat en begint met het schrijven van de code, moet je aan een aantal vereisten voldoen. Dit zijn enkele zeer basale vereisten, die het gebruik van Python gemakkelijker en effectiever kunnen maken.

  1. Python: Het zou een goede beslissing zijn om de nieuwste versie van Python te installeren. U kunt elke Python IDE installeren voor de beste resultaten.
  2. Nieuwswebsite/internettoegang:
    instagram viewer
    Aangezien de Python-code de belangrijkste koppen van uw favoriete website leest, moet u ervoor zorgen dat u toegang hebt tot de website terwijl u deze code uitvoert.

De volledige code is geschreven in Jupyter Notebook, een populaire Python-IDE voor deze gids. Bovendien is de nieuwswebsite van India Today gecodeerd in de voorbeeldcode.

Om Jupyter Notebook te downloaden, kun je het ofwel gebruiken als onderdeel van het anaconda-pakket, of een zelfstandige versie op je systeem downloaden.

downloaden:Anaconda | Jupyter-notitieboekje

Laten we zonder verder oponthoud dieper in de code duiken.

De code schrijven in Python

Om te beginnen moet je een paar Python-bibliotheken importeren, die elk verschillende doelen dienen.

importeer win32com.client als wincl
van urllib.request importeer urlopen als ureq
van bs4 import BeautifulSoup als soep
sp = wincl. Dispatch("SAPI.spVoice")

Waar:

  • win32com.client: Deze bibliotheek werkt samen met Windows-apparaten en voert naadloos Python-programma's uit.
  • urllib.verzoek: Deze bibliotheek verwerkt URL-waarden uit de aanvraagmodule.
  • bs4: De BS4-bibliotheek bevat de functie Beautiful Soup, die gegevens van websites schrapt met Python.
  • sp = wincl. Verzending ("SAPI.spVoice"): Activeer de spraakopdrachten in Windows.

Deze code werkt alleen op Windows, omdat u de bibliotheek win32.com.client aanroept.

Vervolgens moet u de URL (link) van de website definiëren binnen de url variabele, die is opgeslagen in het geheugen van Python.

url = https://www.indiatoday.in/top-stories

Maak een nieuwe variabele client om de URL-openingsopdracht op te slaan.

klant = ureq (url)
afdrukken (klant)

waar:

  • cliënt: Nieuwe variabele.
  • ureq: Python-functie geïmporteerd uit de urllib.request, die de opgeslagen url opent.

Aangezien je de URL in het geheugen hebt geopend, is het tijd om te controleren of de betreffende website onbeveiligde verbindingen via Python toelaat. U kunt de clientvariabele afdrukken en de uitvoer controleren.

Er zijn twee mogelijkheden met het printcommando:

  • HTTP fout: Wanneer een website veilig is, kunt u de inhoud niet schrapen met Python.
  • Codefragment: Als een codefragment wordt geretourneerd nadat de website is uitgevoerd, ga er dan vanuit dat u gemakkelijk de koppen kunt halen.

Nadat u de URL van de nieuwswebsite binnen het URL-commando hebt gedefinieerd, is het tijd om de HTML-code in een variabele te importeren.

page_html = cliënt.lees()
afdrukken (page_html)

U moet uit voorzorg de HTML-code van de website afdrukken die in Python is geïmporteerd. U kunt deze code zelfs matchen met de websitecode die beschikbaar is onder de Inspecteren optie.

Voordat u de code converteert, moet u de website uit het geheugen van Python sluiten met behulp van de opdracht close.

klant.close()

Aangezien u de HTML-code hebt geïmporteerd in een Python-variabele, moet u deze converteren naar een door Python leesbaar formaat om de vind en vind alle commando's om naar trefwoorden te zoeken.

U kunt de volgende opdracht doorgeven om de HTML-code te converteren:

page_soup = soep (page_html, "html.parser")

Waar:

  • pagina_soep: Nieuwe variabele.
  • soep: alias voor de Mooie Soepmodule.
  • pagina_html: Variabele die de HTML-code van de website bevat.
  • html_parser: Standaardsyntaxis om de HTML-code te converteren.

Zodra de code klaar is voor gebruik, is het tijd om de HTML-code van de website te onderzoeken om op zoek te gaan naar trefwoorden in de kop.

Klik hiervoor met de rechtermuisknop ergens op de website en klik op Inspecteren. Hiermee wordt de HTML-code voor de betreffende website geopend.

Blader in het codevenster van de website rond totdat u de containertags vindt waarin de koppen zijn opgeslagen.

Deze zijn opgenomen in de bekijk-inhoud tags op de website van India Today. De containers van elke nieuwswebsite variëren, maar u zou relatief gemakkelijk door de code moeten kunnen navigeren.

artikelen = page_soup.find("div", { "class": "view-content" })

Ten slotte moet je de subtags vastleggen, die de belangrijkste koppen bevatten die Python voor je zal voorlezen.

artikelen = artikelen.findAll("div", {"class": "category-listing"})

De container met weergave-inhoud bevat meerdere koppen, de buitenste schil voor uw koppen.

Om de H2-tags en de fragmenten die bij elke kop worden vermeld vast te leggen, moet u een lus uitvoeren.

ik = 1
voor x in artikelen:
titel = x.find("h2").text
para = x.find("p").text
afdrukken (ik, titel, "
", "
", para",
", "
")
sp. Spreek (titel)
sp. Spreek (para)
ik=i+1

Waar:

  • l: Nieuwe tellervariabele, die automatisch wordt verhoogd.
  • titel: Nieuwe variabele om de kop op te slaan (h2).
  • para: Nieuwe variabele voor de alinea's die bij elke H2 horen.
  • afdrukken: De titel van de kop en de para worden afgedrukt op de Python-interface.
  • sp. Spreek (titel): Python leest elke opgeslagen titel voor.
  • sp. Spreek (zn): Python zal elk opgeslagen paragraaffragment voorlezen.
  • ik = ik+1: Deze opdracht verhoogt automatisch het serienummer dat is gekoppeld aan elke kop die wordt weergegeven op de interface van Python.

Python's Beautiful Soup-module gebruiken om uw dagelijkse nieuws te lezen

Elke keer dat u de code uitvoert, worden nieuwe koppen van de nieuwswebsite gedownload voordat ze hardop worden voorgelezen. Python voert de code uit elke keer dat u de reeks codes uitvoert, waardoor u op de hoogte blijft van de wijzigingen op de website.

De oudere koppen worden nog steeds weergegeven en voorgelezen door Python totdat u de code vernieuwt en opnieuw uitvoert.

Python gebruiken om uw dagelijkse koppen voor te lezen is eenvoudig

Python biedt als open-sourcetaal een reeks tools zoals Beautiful Soup, Selenium en andere frameworks, zowel voor beginners als gevorderden.

Als je je dagelijkse nieuws spraakgestuurd wilt krijgen, maakt Python het gemakkelijk. Het leren van deze specifieke taal kan je ook helpen om op alle gebieden een betere programmeur te worden.

10 handige tools voor Python-ontwikkelaars

Of je nu Python-tools nodig hebt voor datawetenschap, machine learning, webontwikkeling of iets daartussenin, deze lijst heeft je gedekt.

Lees volgende

DelenTweetenE-mail
Gerelateerde onderwerpen
  • Programmeren
  • Python
  • Nieuws
  • Computertips
  • Programmeren
Over de auteur
Gaurav Siyal (56 artikelen gepubliceerd)

Gaurav Siyal heeft twee jaar schrijfervaring en schreef voor een reeks digitale marketingbedrijven en documenten over de levenscyclus van software.

Meer van Gaurav Siyal

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren