تجريف الويب باستخدام Python: دليل المبتدئين
نشرت: 2016-10-10في عالم البيانات الضخمة ، تعد خدمات استخراج البيانات أو كشط الويب من المتطلبات الأساسية لتحليلات البيانات الضخمة. أصبح سحب البيانات من الويب أمرًا لا مفر منه تقريبًا للشركات للبقاء في العمل. السؤال التالي الذي يطرح نفسه هو كيفية التعامل مع تجريف الويب كمبتدئ.

يمكن استخراج البيانات أو كشطها من مصدر ويب باستخدام عدد من الطرق. تقدم مواقع الويب الشهيرة مثل Google أو Facebook أو Twitter واجهات برمجة تطبيقات لعرض البيانات المتاحة واستخراجها بطريقة منظمة. هذا يمنع استخدام الطرق الأخرى التي قد لا يفضلها موفر واجهة برمجة التطبيقات. ومع ذلك ، فإن الطلب على الزحف إلى موقع ويب ينشأ عندما لا يتم تقديم المعلومات بسهولة بواسطة موقع الويب. غالبًا ما يتم استخدام Python ، وهي لغة برمجة مفتوحة المصدر في Web Scraping نظرًا لنظامها البيئي البسيط والغني. يحتوي على مكتبة تسمى "BeautifulSoup" والتي تقوم بهذه المهمة. دعنا نلقي نظرة أعمق على تجريف الويب باستخدام Python.
إعداد بيئة بايثون:
لتنفيذ تجريف الويب باستخدام Python ، سيتعين عليك أولاً تثبيت Python Environment ، والتي تمكنك من تشغيل التعليمات البرمجية المكتوبة بلغة Python. تقوم المكتبات بكشط البيانات ؛
شوربة جميلة هي مكتبة بيثون ملائمة للاستخدام. إنها واحدة من أفضل الأدوات لاستخراج المعلومات من صفحة الويب. يمكن للمحترفين الزحف إلى المعلومات من صفحات الويب في شكل جداول أو قوائم أو فقرات. Urllib2 هي مكتبة أخرى يمكن استخدامها مع مكتبة BeautifulSoup لجلب صفحات الويب. يمكن إضافة عوامل التصفية لاستخراج معلومات محددة من صفحات الويب. Urllib2 هي وحدة Python يمكنها جلب عناوين URL.
بالنسبة لنظام التشغيل MAC OSX:
لتثبيت مكتبات Python على MAC OSX ، يحتاج المستخدمون إلى فتح Terminal win وكتابة الأوامر التالية ، أمر واحد في كل مرة:
sudoeasy_install نقطة
نقطة تثبيت BeautifulSoup4
نقطة تثبيت lxml
لمستخدمي Windows 7 و 8:
يحتاج مستخدمو Windows 7 و 8 إلى التأكد من تثبيت بيئة Python أولاً. بمجرد تثبيت البيئة ، افتح موجه الأوامر وابحث عن طريقة الوصول إلى الدليل C: / ، واكتب الأوامر التالية:
easy_install BeautifulSoup4
easy_installlxml
بمجرد تثبيت المكتبات ، حان الوقت لكتابة رمز تجريف البيانات.
تشغيل بايثون:
يجب إجراء تجريف البيانات لهدف مميز مثل الزحف إلى المخزون الحالي لمتجر بيع بالتجزئة. أولاً ، يلزم وجود متصفح ويب للتنقل في موقع الويب الذي يحتوي على هذه البيانات. بعد تحديد الجدول ، انقر بزر الماوس الأيمن في أي مكان عليه ثم حدد عنصر الفحص من القائمة المنسدلة. سيؤدي هذا إلى ظهور نافذة منبثقة في الجزء السفلي أو الجانب من الشاشة تعرض رمز Html الخاص بموقع الويب. تظهر التصنيفات في جدول. قد تحتاج إلى مسح بيانات HTML حتى تجد سطر التعليمات البرمجية الذي يبرز الجدول على صفحة الويب.
تقدم Python بعض البدائل الأخرى لكشط HTML بصرف النظر عن BeautifulSoup. يشملوا:
- سكرابى
- علامة القصاصات
- مكننة
يحول تجريف الويب البيانات غير المهيكلة من تعليمات HTML البرمجية إلى نموذج بيانات منظمة مثل البيانات الجدولية في ورقة عمل Excel. يمكن إجراء تجريف الويب بعدة طرق تتراوح من استخدام محرّر مستندات Google إلى لغات البرمجة. بالنسبة للأشخاص الذين ليس لديهم أي معرفة برمجية أو كفاءات فنية ، من الممكن الحصول على بيانات الويب باستخدام خدمات تجريف الويب التي توفر بيانات جاهزة للاستخدام من مواقع الويب التي تفضلها.
علامات HTML:
لأداء تجريف الويب ، يجب أن يكون لدى المستخدمين معرفة جيدة بعلامات HTML. قد يكون من المفيد جدًا معرفة أن روابط HTML يتم تعريفها باستخدام علامة الارتساء ، مثل <a> العلامة ، “<a href= ولذلك السبب يجب أن يكون الرابط هنا </a>”. تتألف قائمة HTML من قائمة <ul> (غير مرتبة) و <ol> (مرتبة). يبدأ عنصر القائمة بـ <li>.
يتم تعريف جداول HTML بـ <Table> ، والصف <tr> والأعمدة مقسمة إلى بيانات كـ <td> ؛
- <! DOCTYPE html>: يبدأ مستند HTML بتعريف نوع المستند
- يتم تعريف الجزء الرئيسي من مستند HTML بنص عادي غير منسق بواسطة علامتي <body> و </ body>
- يتم تعريف العناوين في HTML باستخدام علامات العنوان من <h1> إلى <h5>
- يتم تعريف الفقرات بعلامة <p> في HTML
- يوجد مستند HTML كامل بين <html> و </html>
باستخدام BeautifulSoup في القشط:

أثناء تجريف صفحة ويب باستخدام BeautifulSoup ، فإن الشاغل الرئيسي هو تحديد الهدف النهائي. على سبيل المثال ، إذا كنت ترغب في استخراج قائمة من صفحة ويب ، يلزم اتباع نهج حكيم:
- الخطوة الأولى والأهم هي استيراد المكتبات المطلوبة:
#import المكتبة المستخدمة للاستعلام عن موقع ويب
استيراد urllib2
#specify the url wiki = “https: //”
#Query the website وإرجاع html إلى المتغير "page"
الصفحة = urllib2.urlopen (ويكي)
#import وظائف الحساء الجميل لتحليل البيانات التي يتم إرجاعها من الموقع
من bs4 استيراد BeautifulSoup
#Parse html في متغير "الصفحة" ، واحفظه في تنسيق Beautiful Soup
حساء = BeautifulSoup (صفحة)
- استخدم وظيفة "prettify" لتصور بنية متداخلة لصفحة HTML
- العمل مع شوربة العلامات:
تُستخدم حساء <tag> لإرجاع المحتوى بين علامة الفتح والإغلاق بما في ذلك العلامة.
- في [30]: soup.title
خارج [30]: <title> قائمة الرؤساء في الهند حتى عام 2010 - ويكيبيديا ، الموسوعة المجانية </ title>
- soup. <tag> .string: إرجاع سلسلة ضمن علامة معينة
- في [38]: soup.title.string
- خارج [38]: u "قائمة الرؤساء في الهند والبرازيل حتى عام 2010 في الهند - ويكيبيديا ، الموسوعة المجانية"
- اعثر على جميع الروابط داخل علامات <a> علامات الصفحة: ضع علامة على ارتباط باستخدام العلامة "<a>". لذلك ، اذهب إلى خيار soup.a ويجب أن يعرض الروابط المتاحة في صفحة الويب. لنفعلها.
- في [40]: حساء
خارج [40]: <a id="top”> </a>
- اعثر على الطاولة المناسبة:
كجدول لسحب المعلومات حول الرؤساء في الهند والبرازيل حتى عام 2010 قيد البحث عنه ، فإن تحديد الجدول الصحيح أولاً أمر مهم. إليك أمر للزحف إلى المعلومات المضمنة في جميع علامات الجدول.
all_tables = soup.find_all ('جدول')
حدد الجدول الصحيح باستخدام السمة "فئة" من الجدول التي تحتاج إلى تصفية الجدول الصحيح. بعد ذلك ، افحص اسم الفصل بالنقر بزر الماوس الأيمن على الجدول المطلوب بصفحة الويب على النحو التالي:
- تدقيق العنصر
- انسخ اسم الفئة أو ابحث عن اسم فئة الجدول الأيمن من إخراج الأمر الأخير.
right_table = soup.find ('table'، class _ = 'wikeable singlerowheaders')
right_table
هذه هي الطريقة التي يمكننا بها تحديد الجدول الصحيح.
- استخراج المعلومات إلى DataFrame: هناك حاجة للتكرار خلال كل صف (tr) ثم تعيين كل عنصر من عناصر tr (td) إلى متغير وإضافته إلى قائمة. دعنا نحلل بنية HTML للجدول. (استخراج معلومات لعنوان الجدول <th>)
للوصول إلى قيمة كل عنصر ، هناك حاجة لاستخدام خيار "find (text = True)" مع كل عنصر. أخيرًا ، هناك بيانات في إطار البيانات.
هناك العديد من الطرق الأخرى للزحف إلى البيانات باستخدام "BeautifulSoup" التي تقلل الجهود اليدوية لجمع البيانات من صفحات الويب. تعتبر التعليمات البرمجية المكتوبة في BeautifulSoup أكثر قوة من التعبيرات العادية. طريقة تجريف الويب التي ناقشناها تستخدم مكتبات "BeautifulSoup" و "urllib2" في Python. كان هذا دليلًا موجزًا للمبتدئين لبدء استخدام Python في تجريف الويب.
ترقبوا مقالتنا التالية حول كيفية تأثير تجريف الويب على نمو إيراداتك.
هل تخطط للحصول على بيانات من الويب لعلوم البيانات؟ نحن هنا للمساعدة. دعنا نعرف عن متطلباتك.
