شعار proxyscrape داكن

البرنامج التعليمي لكشط الويب باستخدام Python: نصائح وحيل

بايثون, كشط, Mar-06-20245 دقائق للقراءة

يمكنك استخراج كميات كبيرة من البيانات تلقائيًا من مواقع الويب باستخدام كشط الويب وحفظها في قاعدة بيانات أو ملف. يمكن تخزين البيانات التي تم كشطها في الغالب في جدول بيانات أو تنسيق جدولي. يُطلق على عملية كشط الويب أيضًا اسم استخراج بيانات الويب حصاد الويب. وهي ضرورية لأن الكشط اليدوي مهمة شاقة

جدول المحتويات

يمكنك استخراج كميات كبيرة من البيانات تلقائيًا من مواقع الويب باستخدام كشط الويب وحفظها في قاعدة بيانات أو ملف. يمكن تخزين البيانات التي تم كشطها في الغالب في جدول بيانات أو تنسيق جدولي. يُطلق على عملية كشط الويب أيضًا اسم استخراج بيانات الويب حصاد الويب. وهي ضرورية لأن الكشط اليدوي مهمة شاقة قد تستغرق ساعات أو حتى أيامًا لإكمالها. لذا، تحتاج إلى أتمتة العملية واستخراج البيانات من المواقع الإلكترونية في غضون جزء من الوقت.

يمكنك استخدام برنامج كشط الويب لتحميل البيانات والزحف إليها واستخراجها تلقائيًا من صفحات موقع الويب المتعددة بناءً على احتياجاتك ومتطلباتك. باختصار، يمكنك الحصول على البيانات المطلوبة من مواقع الويب بنقرة زر واحدة. في العالم الحديث، تحتاج الشركات إلى تحليل البيانات وتنفيذ إجراءات ذكية. ولكن في بعض الأحيان، يكون الحصول على البيانات من المواقع الإلكترونية صعبًا عندما يستخدم أصحاب المواقع الإلكترونية تقنيات مثل حظر بروتوكول الإنترنت (IP) وCAPTCHA. يمكنك استخدام خوادم البروكسي أو الشبكات الافتراضية الخاصة للتغلب على هذه المشكلة لأنها تساعدك على كشط البيانات من الويب بشكل مجهول. 

لماذا هناك حاجة لكشط الويب؟

تقوم الشركات في جميع أنحاء العالم بكشط البيانات من الويب لاكتساب رؤى مفيدة من خلال تخزينها بتنسيق قابل للاستخدام. فيما يلي بعض إيجابيات كشط الويب في مختلف الصناعات.

  • يجمع كشط الويب مجموعات بيانات التدريب والاختبار لمشاريع التعلم الآلي.
  • في التجارة الإلكترونية، يُستخدم تجريف الويب لمراقبة أسعار المنافسين.
  • يُستخدم كشط الويب في العقارات للحصول على تفاصيل العقار والمالك/الوكيل.
  • في مجال التسويق، يُستخدم تجريف الويب في إنشاء قوائم الهاتف والبريد الإلكتروني للتواصل البارد.

فيما يلي الأسباب الرئيسية لكشط البيانات من الويب.

تحقيق الأتمتة - يمكنك استخراج البيانات من مواقع الويب باستخدام أدوات كشط الويب القوية. وبهذه الطريقة، يمكنك توفير الوقت من مهام جمع البيانات العادية. يمكنك جمع البيانات بحجم أكبر مما يمكن لإنسان واحد أن يأمل في تحقيقه من خلال كشط الويب. علاوةً على ذلك، يمكنك أيضًا إنشاء روبوتات ويب متطورة لأتمتة الأنشطة عبر الإنترنت إما باستخدام لغة برمجة مثل Python أو Javascript أو باستخدام أداة كشط الويب.

مجموعات بيانات غنية وفريدة من نوعها - يمكنك الحصول على كمية غنية من الصور ومقاطع الفيديو والنصوص والبيانات الرقمية من الإنترنت. يمكنك أيضًا العثور على مواقع الويب ذات الصلة وإنشاء مجموعة بيانات مخصصة للتحليل، اعتمادًا على هدفك. على سبيل المثال، أنت مهتم بفهم سوق الرياضة في المملكة المتحدة بعمق. يمكنك إعداد أدوات كشط الويب لجمع محتوى الفيديو أو معلومات إحصائيات كرة القدم من أجلك.

الإدارة الفعالة للبيانات - لا تحتاج إلى نسخ البيانات ولصقها من الإنترنت حيث يمكنك جمع البيانات بدقة من مختلف المواقع الإلكترونية باستخدام برنامج كشط الويب. وبهذه الطريقة، يمكن لشركتك وموظفيك قضاء المزيد من الوقت في العمل الإبداعي من خلال تخزين البيانات بفعالية باستخدام البرامج والبرامج الآلية.

ذكاء الأعمال والرؤى - يتيح لك تجريف الويب من الإنترنت القيام بما يلي:

  • مراقبة النشاط التسويقي للمنافسين
  • البحث عن أسعار المنافسين
  • بناء صورة أكبر لسوقك

علاوةً على ذلك، يمكن للشركات تحقيق عملية اتخاذ قرارات أفضل من خلال تنزيل البيانات وتنظيفها وتحليلها بحجم كبير.

السرعة - يستخرج كشط الويب البيانات من المواقع الإلكترونية بسرعة كبيرة. فهو يتيح لك كشط البيانات في ساعات بدلاً من أيام. لكن بعض المشاريع قد تستغرق وقتاً طويلاً حسب تعقيدها والموارد والأدوات التي نستخدمها لإنجازها.

دقة البيانات - ينطوي الاستخراج اليدوي للبيانات من المواقع الإلكترونية على خطأ بشري، مما يؤدي إلى مشاكل خطيرة. ولذلك، فإن الاستخراج الدقيق للبيانات أمر بالغ الأهمية لأي معلومات، وهو ما يمكن تحقيقه من خلال كشط المواقع الإلكترونية.

كشط الويب في بايثون

لنفترض أن عليك استخراج البيانات من هذا الموقع. سيتعين عليك تثبيت وحدتي Python وهما الطلبات و BeautifulSoup. 

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

يمكنك تثبيت هذه الوحدات باستخدام الأمر التالي.

! تثبيت الطلبات
!pip install BeautifulSoup

يمكنك استيراد هذه الوحدات النمطية على النحو التالي:

من bs4 bs4 استيراد الحساء الجميل
استيراد الطلبات

يمكنك النقر فوق الزر Inspect في الزاوية العلوية اليسرى من الموقع لتمييز العناصر التي ترغب في استخراجها. في حالتنا، نريد استخراج بيانات جدول هذا الموقع كما هو موضح أدناه.

إضافة رأس وعنوان URL

عليك إضافة رأس وعنوان URL إلى طلباتك. يمكن أن يقلع الرأس من طلبك بحيث يبدو وكأنه قادم من متصفح شرعي. 

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'}

url = "https://en.wikipedia.org/wiki/List_of_national_capitals"

يمكنك استخدام الدالة requests.get() لإرسال طلب GET إلى عنوان URL المحدد.

r = طلبات.get(url, headers=headers)

كائن الحساء الجميل

عليك تهيئة كائن BeautifulSoup وذكر معلماته. بعد ذلك، عليك استخراج جميع صفوف الجدول. يمكنك الحصول على جميع عناصر الجدول باستخدام طريقة find_all() كما هو موضح في الكود أدناه.

الحساء = الحساء الجميل(r.content, "html.parser")
الطاولة = soup.find_all('table')[1]
الصفوف = table.find_all('tr')
قائمة الصفوف = قائمة()

التكرار عبر الصفوف

يمكنك استخدام حلقة للتكرار لتكرار جميع الصفوف في الجدول كما هو موضح في الشيفرة أدناه.

بالنسبة إلى tr في الصفوف:
   td = tr.find_all('td')
    الصف = [i.text ل i في td]
    صف_القائمة.إلحاق(صف)

إنشاء إطار بيانات

يمكنك تصور البيانات المستخرجة بوضوح إذا قمت بإنشاء إطار بيانات Pandas وتصدير بياناتك إلى ملف .csv. لإنشاء إطار البيانات، عليك استيراد Pandas، كما هو موضح أدناه.

استيراد الباندا باسم pd

والآن، يمكنك تحويل كائن الحساء الخاص بك إلى إطار بيانات يحتوي على صفوف الجدول التالية.

  • المدينة
  • البلد
  • الملاحظات

يمكنك تحويل إطار البيانات إلى تنسيق csv وطباعة إطار البيانات كما هو موضح أدناه.

df_bs = pd.DataFrame(row_list,columns=['city','country','Notes'])
df_bs.set_index('Country',inplace=صحيح)
df_bs.to_csv('beautifulsoup.csv')
طباعة(df_bs)

ستحصل على الناتج أدناه.

وكلاء لكشط الويب باستخدام بايثون

يعمل البروكسي كوسيط أو وسيط بين العميل والخادم. يخفي عنوان IP الحقيقي الخاص بك ويتجاوز الفلاتر والرقابة. يمكنك الحصول على قائمة مجانية من البروكسي عن طريق استخدام دالة في Python، كما هو موضح في الخطوات أدناه.

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

عليك استيراد الوحدات أدناه في بايثون.

من bs4 bs4 استيراد الحساء الجميل
استيراد الطلبات
استيراد عشوائي

تعريف الدالة

يمكنك تحديد دالة get_free_proxies() التي يجب أن تذكر فيها عنوان URL لقائمة البروكسي المجانية. بعد ذلك، عليك إنشاء كائن BeautifulSoup والحصول على استجابة HTTP باستخدام الدالة requests.get(). 

def get_free_proxies():
    url = "https://free-proxy-list.net/"
    الحساء = bs(requests.get.get(url).content, "html.parser")
    الوكلاء = []

استخدام حلقة من أجل التكرار

يمكنك استخدام طريقة find_all() في حلقة التكرار لتكرار جميع صفوف الجدول كما هو موضح أدناه.

for row in soup.find("table", attrs={"id": "proxylisttable"}).find_all("tr")[1:]:
        tds = row.find_all("td")
        try:
            ip = tds[0].text.strip()
            port = tds[1].text.strip()
            host = f"{ip}:{port}"
            proxies.append(host)
        except IndexError:
            continue
    return proxies

قائمة وكلاء العمل

يمكنك ذكر قائمة ببعض الوكلاء العاملين مثل الذي ذكرناه أدناه.

الوكلاء = [
    '167.172.248.53:3128',
   '194.226.34.132:5555',
   '203.202.245.62:80',
    '141.0.70.211:8080',
    '118.69.50.155:80',
    '201.55.164.177:3128',
   '51.15.166.107:3128',
   '91.205.218.64:80',
    '128.199.237.57:8080',
]

طلب جلسة

عليك إنشاء دالة get_session() التي ستقبل قائمة من الوكلاء. كما أنها تنشئ جلسة طلبات تختار عشوائيًا أيًا من الوكلاء الذين تم تمريرهم كما هو موضح في الشيفرة أدناه.

def get_session(proxies):
  session = requests.Session()
  proxy = random.choice(proxies)
  session.proxies = {"http": proxy, "https": proxy}
  return session

تقديم طلب

يمكنك استخدام حلقة للتكرار لتقديم طلب إلى موقع ويب والحصول على عنوان IP في المقابل.

بالنسبة إلى i في النطاق(5):
    s = get_session(الوكلاء)
    حاول:
       طباعة("طلب صفحة مع عنوان IP:",", s.get("http://icanhazip.com", المهلة=1.5).text.strip())
    باستثناء الاستثناء كـ e:
        متابعة

يمكنك الحصول على المخرجات التالية.

لماذا تعتبر البروكسيات مهمة لكشط الويب؟

يمكن للشركات استخراج بيانات قيّمة لاتخاذ قرارات تستند إلى البيانات وتقديم خدمات مدعومة بالبيانات من خلال تجريف الويب. تعتبر البروكسيات مهمة لكشط الويب للأسباب التالية.

  • باستخدام البروكسيات، يمكنك تقديم طلبات من منطقة جغرافية معينة والاطلاع على المحتوى المحدد الذي يعرضه الموقع الإلكتروني لذلك الموقع المحدد. هذه الميزة للوكلاء مفيدة عندما تقوم بكشط بيانات المنتج من تجار التجزئة عبر الإنترنت.
  • تتيح لك البروكسيات تقديم عدد أكبر من الطلبات إلى موقع إلكتروني مستهدف دون أن تتعرض للحظر أو المنع.
  • تسمح لك الوكلاء بتتبع البيانات من مواقع الويب بشكل أكثر موثوقية وكفاءة.
  • باستخدام البروكسيات، يمكنك إجراء عدد غير محدود من الجلسات المتزامنة إلى نفس المواقع الإلكترونية أو مواقع مختلفة دون الخوف من التعرض للحظر.
  • يقوم البروكسي بإخفاء عنوان IP الخاص بجهازك عن الموقع الإلكتروني المستهدف، مما يوفر حماية إضافية لجهازك.
  • تستخدم الشركات الوكلاء لمراقبة أسعار المنافسين وميزات منتجاتهم لتحسين خدماتهم ومنتجاتهم.

خاتمة حول هذا البرنامج التعليمي لكشط الويب باستخدام بايثون

ناقشنا حتى الآن أن كشط الويب يساعدنا في استخراج البيانات من المواقع الإلكترونية بطريقة آلية. يمكنك تحويل البيانات إلى تنسيق قابل للاستخدام مثل ملف .csv. تستخدم الشركات كشط الويب للتحقق من أسعار المنافسين وميزات المنتج. يعد تجريف الويب مفيدًا جدًا إذا كنت تستخدم البروكسي لأنه يحافظ على هويتك مجهولة من خلال إخفاء عنوان IP الأصلي الخاص بك عن الموقع المستهدف. باستخدام البروكسيات، يمكنك إرسال طلبات متعددة إلى موقع الويب دون الخوف من التعرض للحظر أو المنع.