درس Web Scraping for tayara.tn

الموضوع في 'لغات البرمجة' بواسطة concoursc, بتاريخ ‏8 ديسمبر 2017.

  1. concoursc

    concoursc نجم المنتدى

    إنضم إلينا في:
    ‏23 جانفي 2012
    المشاركات:
    2.124
    الإعجابات المتلقاة:
    3.476
      08-12-2017 16:22
    [​IMG]
    أهلا و سهلا بكافّة الإخوة الأعضاء والزوار في منتديات تونيزيا سات
    و مرحبا بكم في قسم التطوير و لغات البرمجة

    كود PHP:
    from login_pswd import strFrom, strTo, pswd

    import sys
    import time

    import smtplib

    from email.mime.multipart import MIMEMultipart
    from email.mime.text        import MIMEText
    from email.mime.image       import MIMEImage
    from email.header         import Header

    from urllib.request import urlopen , Request
    from bs4 import BeautifulSoup as soup
    from urllib.parse import quote
    import requests

    from PIL import Image
    import pytesseract
    pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'

    from io import BytesIO

    import pandas as pd
    import numpy as np

    حيت نشارك معاكم سكريبت خدمتو لغرض تعلم بلغة Python
    الهدف هو بعث بريد الكتروني بقائمة السلع المعروضة في موقع tayara.tn مع الثمن و تصويرة السلعة و رقم هاتف الباءع , الحاجة الباهية انو رقم الهاتف ماهوش موجود في صغة text , هو في شكل صورة لذلك لازم تنصيب خاصه تقوم بالOCR و ما يعبر عنه التعرف الضؤي للرموز


    [​IMG]

    باش نقرى محتوى الصفحة استعملت urrlib
    باش نحول المحتوى لtree شجرة نجم نجبد منها اللي نحب عن طريق tag و class متاع tag اسعملت
    bs4
    باش نبعث استعملت smtplib
    باش نجمت نقرى الارقام من التصويرة استعملت pytesseract
    ما تنسواش تنصيب Tesseract

    نجيو تو للكود :


    اول حاجة اللي هي url , نزيدوه كلمة البحث اللي نلصقوها a la fin
    كلمة البحث باش ناخذوها ك sys.argv من terminal في اخر الكود

    كود PHP:
        url = "https://www.tayara.tn/fr/bizerte/toutes_les_categories/"+quote("à_vendre")+"/"+term
    كود PHP:
        req = Request(url, headers={'User-Agent':'Chrome'})
        page_html = urlopen(req).read()


    بعد تخزين محتوى صفحة نتيجة البحث
    , نلوجو على السلع , فما tag اسمها article , هي فيها كل المعلومات , و كل article فيه link اللي يهزنا لآل details متاع article
    ب beautifulsoup
    نبحثو و نخزنوهم


    كود PHP:
        page_soup = soup(page_html,"html.parser")
        articles = page_soup.find_all('article')

    بعد نعملو loop , على كل article ناخذو Price و Image Link


    كود PHP:
    price = article.find('span').text.strip()[][/B][/B][/CENTER]
    [B][B]
    [CENTER][CENTER]img = article.find('img')['data-blazy']







    , يقعد رقم الهاتف , هو موجود في في detail , لازمنا ندخلو و كيف العاد في نفس loop نجبدو soup detail الكل و نلوجو على tag ا الي فيها مخزن link Image رقم الهاتف , هوني نستعملو library pytesseract
    نحولو التصويرة لرقم هاتف
    كود PHP:
            phone_number = pytesseract.image_to_string(Image.open(BytesIO(response_img.content)), lang = 'eng')
     
    و نخزنو كل شي في python array , بالنسبة ليه اسهلني اني نحول الليست اذيكا ل Dataframe with pandas , اكاكا نجم نقوم filter و نضف Data متاعي
    بعد نجيبو باش نبعثو المايل باستعمال smtplib , تنجم تبعث المايل في صيغة HTML , على اذاكا استعملت email with module mime

    و هذه النتيجة ,
    [​IMG]
    الكود موجود في github.com و فما زادة كيفاه تستعملوه README.md

    نعرف اللي موش هدرة كبيرة اما تنجم تعطيكم فكرة على web scraping و كيفاه تنجم تستعمل HTML content متاع موقع اللي ماعندويش API خاص بيه باش تاخو Data حاشتك بيها

    Last thing :
    to run the script :
    كود PHP:
    python search_items_tayara.py <search for something>
    السلام

     
    آخر تعديل: ‏8 ديسمبر 2017
    pedobear ،wazuup و Ahmed Jendoubi معجبون بهذا.
  2. pedobear

    pedobear نجم المنتدى

    إنضم إلينا في:
    ‏18 جانفي 2009
    المشاركات:
    5.767
    الإعجابات المتلقاة:
    11.030
      08-12-2017 19:42
    عمل ممتاز
    تنجم في عوض ما تبعث مايل تعمل واجهة مستخدم GUI و تدخل شنو بش تلوج و يعطيك النتيجة
     
    أعجب بهذه المشاركة concoursc
جاري تحميل الصفحة...
مواضيع مشابهة التاريخ
درس منحة Udacity و Google في مجال Web or Android Development (ممولة بالكامل) ‏22 مارس 2018

مشاركة هذه الصفحة

جاري تحميل الصفحة...