آیا آسان تر نخواهد بود اگر رایانه شما آخرین عناوین اخبار را بدون نیاز به انجام کارهای زیادی برای شما بخواند؟ خبر خوب: شما می توانید دقیقاً به آن دست پیدا کنید.
صبح زودی را تصور کنید که در آن یک فنجان قهوه داغ تازه می نوشید و رایانه شما آخرین اخبار را برای شما می خواند – همه به تنهایی. آیا این به نظر شگفت انگیز نیست؟
خوب، با پایتون، می توانید خبرخوان شخصی و شخصی خود را بسازید، که تمام عناوین برتر را به همراه گزیده های هر عنوان برای شما می خواند. بله درست است. با استفاده از کتابخانههای مناسب، میتوانید پایتون را مجبور به انجام تمام روالهای صبحگاهی خود کنید، بدون اینکه نیازی به خواندن تک تک کلمات خودتان باشد.
در اینجا نحوه نوشتن این کد و تغییر آن در وب سایت خبری مورد علاقه خود آمده است.
پیش نیازهای اجرای کد
قبل از اینکه وارد شوید و شروع به نوشتن کد کنید، باید چند پیش نیاز را انجام دهید. اینها برخی از الزامات بسیار اساسی هستند که می توانند استفاده از پایتون را آسان تر و موثرتر کنند.
- پایتون: نصب آخرین نسخه پایتون تصمیم خوبی خواهد بود. برای بهترین نتیجه می توانید هر IDE پایتون را نصب کنید.
- وب سایت خبری/دسترسی به اینترنت: از آنجایی که کد پایتون سرفصل های برتر وب سایت مورد علاقه شما را می خواند، باید اطمینان حاصل کنید که می توانید در حین اجرای این کد به وب سایت دسترسی داشته باشید.
کل کد در Jupyter Notebook، یک IDE محبوب پایتون برای این راهنما نوشته شده است. علاوه بر این، وب سایت خبری India Today در کد نمونه کدگذاری شده است.
برای دانلود Jupyter Notebook، میتوانید از آن به عنوان بخشی از بسته آناکوندا استفاده کنید یا یک نسخه مستقل را روی سیستم خود دانلود کنید.
دانلود: Anaconda | نوت بوک ژوپیتر
بدون هیچ مقدمه ای، بیایید عمیق تر به کد بپردازیم.
نوشتن کد در پایتون
برای شروع، باید چند کتابخانه پایتون را وارد کنید که هر کدام اهداف متفاوتی دارند.
import win32com.client as wincl
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
sp = wincl.Dispatch("SAPI.spVoice")
جایی که:
- win32com.client: این کتابخانه با دستگاه های ویندوز تعامل دارد و برنامه های پایتون را یکپارچه اجرا می کند.
- urllib.request: این کتابخانه مقادیر URL را از ماژول درخواست مدیریت می کند.
- bs4: کتابخانه BS4 حاوی تابع Beautiful Soup است که دادههای وبسایتها را با استفاده از پایتون پاک میکند.
- sp = wincl.Dispatch(“SAPI.spVoice”): دستورات صوتی را در ویندوز فعال کنید.
این کد فقط در ویندوز کار می کند، زیرا شما با کتابخانه win32.com.client تماس می گیرید.
در مرحله بعد، باید URL (لینک) وب سایت را در متغیر url که در حافظه پایتون ذخیره می شود، تعریف کنید.
url = "https://www.indiatoday.in/top-stories"
یک کلاینت متغیر جدید برای ذخیره دستور باز کردن URL ایجاد کنید.
client = ureq(url)
print(client)
جایی که:
- مشتری: متغیر جدید.
- ureq: تابع پایتون وارد شده از urllib.request، که url ذخیره شده را باز می کند.
از آنجایی که URL را در حافظه باز کرده اید، وقت آن است که بررسی کنید آیا وب سایت مورد نظر اجازه اتصالات ناامن از طریق پایتون را می دهد یا خیر. می توانید متغیر مشتری را چاپ کنید و خروجی را بررسی کنید.
با دستور print دو احتمال وجود دارد:
- خطای HTTPE: وقتی یک وب سایت ایمن است، نمی توانید با استفاده از پایتون محتوا را خراش دهید.
- قطعه کد: اگر یک قطعه کد پس از اجرای وب سایت برگردانده شد، فرض کنید که می توانید به راحتی سرفصل ها را بکشید.
هنگامی که URL وب سایت خبری را در دستور URL تعریف کردید، وقت آن است که کد HTML را به یک متغیر وارد کنید.
page_html = client.read()
print(page_html)
شما باید کد HTML وب سایت وارد شده به پایتون را به عنوان یک اقدام احتیاطی چاپ کنید. حتی می توانید این کد را با کد وب سایت موجود در زیر گزینه Inspect مطابقت دهید.
قبل از تبدیل کد، باید وب سایت را از حافظه پایتون با استفاده از دستور close ببندید.
client.close()
از آنجایی که شما کد HTML را به یک متغیر پایتون وارد کرده اید، باید آن را به یک قالب قابل خواندن پایتون تبدیل کنید تا دستورات find و findall را برای جستجوی کلمات کلیدی اعمال کنید.
برای تبدیل کد HTML می توانید دستور زیر را ارسال کنید:
page_soup = soup(page_html , "html.parser")
جایی که:
- page_soup: متغیر جدید.
- سوپ: نام مستعار برای ماژول سوپ زیبا.
- page_html: متغیری که حاوی کد HTML وب سایت است.
- html_parser: نحو پیشفرض برای تبدیل کد HTML.
هنگامی که کد برای استفاده آماده شد، زمان آن است که کد HTML وب سایت را بررسی کنید تا شروع به جستجوی کلمات کلیدی عنوان کنید.
برای انجام این کار، در هر نقطه از وب سایت کلیک راست کرده و بر روی Inspect کلیک کنید. با این کار کد HTML وب سایت مورد نظر باز می شود.
در پنجره کد وب سایت، به اطراف پیمایش کنید، تا زمانی که برچسب های ظرفی را که سرفصل ها را ذخیره می کنند، پیدا کنید.
اینها در برچسبهای محتوای مشاهده در وبسایت India Today قرار دارند. محفظههای هر وبسایت خبری متفاوت است، اما باید بتوانید با سهولت نسبی در کدها پیمایش کنید.
articles = page_soup.find("div" , { "class" : "view-content" })
در نهایت، شما باید تگ های فرعی را که حاوی عناوین اصلی هستند که پایتون برای شما می خواند، ضبط کنید.
articles = articles.findAll("div" , {"class" : "catagory-listing"})
محفظه محتوای مشاهده حاوی چندین عنوان است، پوسته بیرونی سرفصل های شما.
برای گرفتن تگ های H2 و قطعه های فهرست شده با هر عنوان، باید یک حلقه اجرا کنید.
i = 1
for x in articles:
title = x.find("h2").text
para = x.find("p").text
print(i , title , "\n" , "\n" , para , "\n" , "\n")
sp.Speak(title)
sp.Speak(para)
i=i+1
جایی که:
- i: متغیر شمارنده جدید، که به صورت خودکار افزایش می یابد.
- title: متغیر جدید برای ذخیره تیتر (h2).
- para: متغیر جدیدی برای نگهداری پاراگراف های مرتبط با هر H2.
- print: عنوان عنوان و پاراگراف در رابط پایتون چاپ می شود.
- sp.Speak(Title): پایتون هر عنوان ذخیره شده را می خواند.
- sp.Speak(para): پایتون هر قطعه پاراگراف ذخیره شده را می خواند.
- i = i+1: این دستور به طور خودکار شماره سریال مرتبط با هر عنوان نمایش داده شده در رابط پایتون را افزایش می دهد.
استفاده از ماژول سوپ زیبای پایتون برای خواندن اخبار روزانه شما
هر بار که کد را اجرا می کنید، عناوین تازه از وب سایت خبری قبل از خواندن با صدای بلند دانلود می شوند. پایتون هر بار که مجموعه کدها را اجرا می کنید، کد را اجرا می کند و در نتیجه شما را با تغییرات وب سایت به روز نگه می دارد.
سرفصلهای قدیمیتر همچنان توسط پایتون نمایش داده میشوند و خوانده میشوند تا زمانی که کد را بازخوانی و دوباره اجرا کنید.
استفاده از پایتون برای خواندن سرفصل های روزانه آسان است
پایتون، به عنوان یک زبان منبع باز، مجموعه ای از ابزارها مانند سوپ زیبا، سلنیوم و سایر چارچوب ها را به کاربران مبتدی و پیشرفته ارائه می دهد.
اگر می خواهید اخبار روزانه خود را به صورت صوتی ارائه کنید، پایتون این کار را آسان می کند. یادگیری این زبان خاص همچنین می تواند به شما کمک کند تا در همه زمینه ها برنامه نویس بهتری شوید.