logo

قراءة محتوى صفحة الويب المحددة باستخدام Python Web Scraping

المتطلب السابق: تحميل الملفات في بايثون تجريف الويب باستخدام BeautifulSoup نعلم جميعًا أن بايثون هي لغة برمجة سهلة للغاية ولكن ما يجعلها رائعة هو العدد الكبير من المكتبات مفتوحة المصدر المكتوبة لها. تعد الطلبات من أكثر المكتبات استخدامًا. فهو يسمح لنا بفتح أي موقع ويب يستخدم HTTP/HTTPS ويسمح لنا بالقيام بأي نوع من الأشياء التي نقوم بها عادةً على الويب ويمكننا أيضًا حفظ الجلسات، مثل ملفات تعريف الارتباط. كما نعلم جميعًا أن صفحة الويب هي مجرد جزء من كود HTML الذي يتم إرساله بواسطة خادم الويب إلى متصفحنا والذي بدوره يتحول إلى صفحة جميلة. نحتاج الآن إلى آلية للحصول على كود مصدر HTML، أي العثور على بعض العلامات المحددة باستخدام حزمة تسمى BeautifulSoup. تثبيت:
pip3 install requests 
pip3 install beautifulsoup4 

نأخذ مثالا من خلال قراءة موقع إخباري هندوستان تايمز

يمكن تقسيم الكود إلى ثلاثة أجزاء.
  • طلب صفحة ويب
  • فحص العلامات
  • طباعة المحتويات المناسبة
خطوات:
    طلب صفحة ويب:أولاً نرى النقر بزر الماوس الأيمن على نص الأخبار لرؤية كود المصدر قراءة محتوى صفحة الويب المحددة باستخدام Python Web Scraping' title= فحص العلامات:نحن بحاجة إلى معرفة أي نص من التعليمات البرمجية المصدر يحتوي على قسم الأخبار الذي نريد حذفه. إنها القائمة غير المرتبة "searchNews" ضمن uli.e والتي تحتوي على قسم الأخبار. قراءة محتوى صفحة الويب المحددة باستخدام Python Web Scraping' title= ملاحظة: نص الأخبار موجود في جزء نص علامة الارتساء. تعطينا المراقبة الدقيقة فكرة أن جميع الأخبار موجودة في علامات القائمة غير المرتبة. قراءة محتوى صفحة الويب المحددة باستخدام Python Web Scraping' title= طباعة المحتويات المناسبة: The content is printed with the help of code given below. Python
    import requests from bs4 import BeautifulSoup def news(): # the target we want to open  url='http://www.hindustantimes.com/top-news' #open with GET method resp=requests.get(url) #http_respone 200 means OK status if resp.status_code==200: print('Successfully opened the web page') print('The news are as follow :-n') # we need a parserPython built-in HTML parser is enough . soup=BeautifulSoup(resp.text'html.parser') # l is the list which contains all the text i.e news  l=soup.find('ul'{'class':'searchNews'}) #now we want to print only the text part of the anchor. #find all the elements of a i.e anchor for i in l.findAll('a'): print(i.text) else: print('Error') news() 

    الإخراج

    Successfully opened the web page The news are as follow :- Govt extends toll tax suspension use of old notes for utility bills extended till Nov 14 Modi Abe seal historic civil nuclear pact: What it means for India Rahul queues up at bank says it is to show solidarity with common man IS kills over 60 in Mosul victims dressed in orange and marked 'traitors' Rock On 2 review: Farhan Akhtar Arjun Rampal's band hasn't lost its magic Rumours of shortage in salt supply spark panic among consumers in UP Worrying truth: India ranks first in pneumonia diarrhoea deaths among kids To hell with romance here's why being single is the coolest way to be India vs England: Cheteshwar Pujara Murali Vijay make merry with tons in Rajkot Akshay-Bhumi SRK-Alia Ajay-Parineeti: Age difference doesn't matter anymore Currency ban: Only one-third have bank access; NE backward regions worst hit Nepal's central bank halts transactions with Rs 500 Rs 1000 Indian notes Political upheaval in Punjab after SC tells it to share Sutlej water Let's not kid ourselves with Trump what we have seen is what we will get Want to colour your hair? Try rose gold the hottest hair trend this winter 

مراجع



إنشاء اختبار