Sabahın erken saatlerinde sıcak bir fincan taze kahve yudumladığınızı ve bilgisayarınızın size en son başlıkları tek başına okuduğunu düşünün. Kulağa harika gelmiyor mu?
Python ile, her başlığın alıntılarıyla birlikte sizin için en iyi başlıkları okuyacak olan kendi kişiselleştirilmiş haber okuyucunuzu oluşturabilirsiniz. Evet, bu doğru. Doğru kütüphaneleri kullanarak, Python’a her kelimeyi kendi başına okumak zorunda kalmadan tüm sabah rutinlerinizi yapmasını sağlayabilirsiniz.
Bu kodu şu şekilde yazabilir ve en sevdiğiniz haber web sitesine göre ayarlayabilirsiniz.
Kodu Çalıştırmak için ÖnKoşullar
Atlayıp kodu yazmaya başlamadan önce, birkaç ön koşulu yerine getirmeniz gerekir. Bunlar, Python kullanımını daha kolay ve daha etkili hale getirebilecek bazı çok temel gereksinimlerdir.
- Piton: Python’un en son sürümünün yüklü olması iyi bir karar olacaktır. En iyi sonuçları elde için herhangi bir Python IDE yükleyebilirsiniz.
- Haber sitesi/internet erişimi: Python kodu en sevdiğiniz web sitesinden en iyi başlıkları okuduğundan, bu kodu çalıştırırken web sitesine erişebildiğinizden emin olmanız gerekir.
Kodun tamamı, bu kılavuz için popüler bir Python IDE olan Jupyter Notebook’ta yazılmıştır. Ayrıca, India Today’in haber sitesi örnek kod içinde kodlanmıştır.
Jupyter Notebook’u indirmek için anakonda paketinin bir parçası olarak kullanabilir veya sisteminize bağımsız bir sürüm indirebilirsiniz.
İndirmek: Anaconda | Jupyter Not Defteri
Lafı daha fazla uzatmadan, kodu daha derinlemesine inceleyelim.
Kodu Python’da Yazma
Başlamak için, her biri farklı amaçlara hizmet eden birkaç Python kitaplığı içe aktarmanız gerekir.
import win32com.client as wincl
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
sp = wincl.Dispatch("SAPI.spVoice")
Nerede:
- win32com.client: Bu kitaplık Windows cihazlarıyla etkileşime girer ve Python programlarını sorunsuz bir şekilde çalıştırır.
- urllib.request: Bu kitaplık, istek modülündeki URL değerlerini işler.
- bs4: BS4 kütüphanesi, Python kullanarak web sitelerinden veri kazıyan Güzel Çorba işlevini içerir.
- sp = wincl. Dispatch(“SAPI.spVoice”): Windows’da Sesli komutları etkinleştirin.
Win32.com.client kitaplığını çağıracağınız için bu kod yalnızca Windows’ta çalışır.
Ardından, web sitesinin URL’sini (bağlantısını) URL python’un belleğinde depolanan değişken.
url = https://www.indiatoday.in/top-stories
URL açma komutunu depolamak için yeni bir değişken istemci oluşturun.
client = ureq(url)
print(client)
nerede:
- müşteri: Yeni değişken.
- ürek: Depolanan url’yi açan urllib.request dosyasından içe aktarılan Python işlevi.
URL’yi bellekte açtığınız için, söz konusu web sitesinin Python üzerinden güvenli olmayan bağlantılara izin olup olmadığını kontrol etmenin zamanı geldi. İstemci değişkenini yazdırabilir ve çıktıyı denetleyebilirsiniz.
Print komutuyla iki olasılık vardır:
- HTTPError: Bir web sitesi güvenli olduğunda, Python kullanarak içeriği kazıyamazsınız.
- Kod Snippet’i: Web sitesini çalıştırdıktan sonra bir kod snippet’i döndürülürse, başlıkları kolayca çekebileceğinizi varsayalım.
URL komutu içinde haber web sitesinin URL’sini tanımladıktan sonra, HTML kodunu bir değişkene aktarmanın zamanı gelmiştir.
page_html = client.read()
print(page_html)
Önlem amaçlı bir adım olarak web sitesinin Python’a içe aktarılan HTML kodunu yazdırmanız gerekir. Bu kodu, Incelemek seçenek.
Kodu dönüştürmeden önce, kapat komutunu kullanarak web sitesini Python’un hafızasından kapatmanız gerekir.
client.close()
HTML kodunu bir Python değişkenine içe aktardığınız için, bulmak ve findall anahtar sözcükleri aramak için komutlar.
HTML kodunu dönüştürmek için aşağıdaki komutu geçirebilirsiniz:
page_soup = soup(page_html , "html.parser")
Nerede:
- page_soup: Yeni değişken.
- çorba: Güzel Çorba modülünün diğer adı.
- page_html: Web sitesindeki HTML kodunu içeren değişken.
- html_parser: HTML kodunu dönüştürmek için varsayılan sözdizimi.
Kod kullanıma hazır olduğunda, başlık anahtar kelimelerini aramaya başlamak için web sitesi HTML kodunu incelemenin zamanı gelmiştir.
Bunu yapmak için, web sitesinde herhangi bir yeri sağ tıklatın ve İncele’ye tıklayın. Bu, söz konusu web sitesinin HTML kodunu açacaktır.
Web sitesinin kod penceresinde, başlıkları depolayan kapsayıcı etiketlerini bulana kadar kaydırın.
Bunlar, görünüm içeriği etiketleri India Today web sitesinde bulabilirsiniz. Her haber web sitesinin kapsayıcıları değişir, ancak kodda nispeten kolay bir şekilde gezinebilmeniz gerekir.
articles = page_soup.find("div" , { "class" : "view-content" })
Son olarak, Python’un size okuyacağı ana başlıkları içeren alt etiketleri yakalamanız gerekir.
articles = articles.findAll("div" , {"class" : "catagory-listing"})
Görünüm içeriği kapsayıcısı, başlıklarınızın dış kabuğu olan birden çok başlık içerir.
H2 etiketlerini ve her başlıkla listelenen parçacıkları yakalamak için bir döngü çalıştırmanız gerekir.
i = 1
for x in articles:
title = x.find("h2").text
para = x.find("p").text
print(i , title , "
" , "
" , para , "
" , "
")
sp.Speak(title)
sp.Speak(para)
i=i+1
Nerede:
- ben: Otomatik olarak artırılacak yeni sayaç değişkeni.
- başlık: Başlığı (h2) kaydetmek için yeni değişken.
- para: Her H2 ile ilişkili paragrafları tutmak için yeni değişken.
- yazdırmak: Başlığın ve paranın başlığı Python arayüzüne yazdırılacaktır.
- Sp. Konuş(Başlık): Python depolanan her başlığı okuyacaktır.
- Sp. Konuş(para): Python depolanan her paragraf snippet’ini okur.
- i = i+1: Bu komut, Python’un arabiriminde görüntülenen her başlıkla ilişkili seri numarasını otomatik olarak artırır.
Günlük Haberlerinizi Okumak İçin Python’un Güzel Çorba Modüllerini Kullanma
Kodu her çalıştırdığınızda, yüksek sesle okunmadan önce haber sitesindeki yeni başlıklar indirilecektir. Python, kod kümesini her çalıştırdığınızda kodu yürütür, böylece web sitesindeki değişikliklerle sizi güncel tutar.
Kodu yenileyip yeniden çalıştırıncaya kadar eski başlıklar Python tarafından görüntülenmeye ve okunmaya devam eder.
Günlük Başlıklarınızı Okumak için Python’ı Kullanmak Kolaydır
Python, açık kaynaklı bir dil olarak, hem yeni başlayanlara hem de ileri düzey kullanıcılara Güzel Çorba, Selenyum ve diğer çerçeveler gibi bir dizi araç sunar.
Günlük haberlerinizi sesli olarak sunmak istiyorsanız Python bunu kolaylaştırır. Bu dili öğrenmek, her alanda daha iyi bir programcı olmanıza da yardımcı olabilir.