تجريف موقع بواسطة بايثون scraping beautifulsoup

    تجريف موقع بواسطة بايثون  scraping beautifulsoup

    ماهو التجريف الويب WebScraping ؟
    الجواب البسيط هو أنه ليس كل موقع لديه API والتي توفر لنا البيانات التي نريدها من الموقع بتنسيق جاهز, أو بتنسيق Json الذي يوفر لنا بيانات منظمة . على سبيل المثال ، قد ترغب في الحصول تغريدات من حساب Twitter ، أو الصور من حساب Pinterest. وذلك بدون استخدام API،  ولهذا سيكون استخراج HTML أو الكشط/التجريف هو الطريقة الوحيدة للحصول على هذا المحتوى. سأريكم كيف نطبق ذلك في بايثون.
    في هذه المقاله سنقوم ببرمجة أداة تجريف Scraper خاص بك بسهوله بلغه البايثون , وبالاستعانة بالمكتبة الشهيرة BeautifulSoup , بحيث نجعل الاداة تقوم باستخراج وجلب اي بيانات نريدها موجودة بالانترنت.


    برمجة أداة استخراج جميع الروابط من موقع بواسطة بايثون

    سنحتاج مكتبة  Beautifulsoup  لذلك عليك تثبيتها اولا:
    ان كنت على الويندوز افتح موجه الاوامر cmd أو  افتح الطرفية Terminal ان كنت على اللينكس

    pip install bs4
    سنقوم باستدعاء مكتبة bs4 وسنحتاج تضمين import الموديل  BeautifulSoup منها

    from bs4 import BeautifulSoup
    نقوم ياستدعاء مكتبة urllib2 والذي نحتاجه في تنزيل محتوى الصفحة من الانترنت

    import urllib2

    نقوم بطلب الموقع, وضعت مدونة كورتكس هكر كمثال
    site = urllib2.urlopen("http://www.onsec.tk")

    نقوم بقراءة محتواها وتخزينه في متغير باسم siteHtml
    siteHtml = site.read()
    ثم نغلق الطلب request
    site.close()
    الان نقوم بتحليل محتوى الصفحة او الموقع الذي نزلناه على شكل html والموجود بمتغير باسم siteHtml
    soup = BeautifulSoup(siteHtml)

    الان بقي فقط ان نحدد ما نريد استخراجه من الموقع, سأبحث عن الوسم <a 
    soup.find_all('a')
    ثم نقوم باستخراج الروابط الموجودة داخله والتي يرمز لها بالرمز href بهذه الطريقة
    links.get('href')
     وبواسطة حلقة loop for يصبح الامران
    for links in soup.find_all('a'):
        print (links.get('href'))

    في النهاية سيطبع لنا الروابط . وهذه نتيجة التطبيق
    اضغط على الصورة لتكبيرها
    تجريف موقع بواسطة بايثون  scraping beautifulsoup

    كود السكريبت كامل

    from bs4 import BeautifulSoup
    import urllib2
    site = urllib2.urlopen("http://www.onsec.tk")
    siteHtml = site.read()
    site.close()
    soup = BeautifulSoup(siteHtml)
    for links in soup.find_all('a'):
        print (links.get('href'))
    تجريف موقع بواسطة بايثون  scraping beautifulsoup


    شارك المقال

    مقالات متعلقة

    إرسال تعليق