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

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

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

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

لذا، اربطوا حزام الأمان واستعدوا للشروع في رحلة مثيرة إلى عالم الزحف على الويب الآسر!

الزحف على الويب مقابل تجريف الويب

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

الاختلافات الرئيسية

ببساطة، الزحف إلى الويب هو ما تفعله محركات البحث: فهي تتنقل عبر الويب، وتبحث عن أي معلومات متاحة، وتتبع كل رابط يمكن الوصول إليه. تهدف هذه العملية العامة إلى جمع أكبر قدر ممكن من المعلومات (أو حتى كلها) من موقع ويب معين. في الأساس، هذا ما يفعله Google – فهو يعرض صفحة الويب بأكملها ويقوم بفهرسة جميع البيانات المتاحة.

من ناحية أخرى، يتم استخدام تجريف الويب عندما تريد تنزيل المعلومات المجمعة. يعد تجريف الويب (المعروف أيضًا باسم استخراج بيانات الويب) عملية أكثر تركيزًا. من خلال تخصيص الأوامر واستخدام الوكلاء، يمكنك استخراج بيانات محددة من موقع الويب المستهدف الخاص بك. وبعد ذلك، يمكنك تنزيل النتائج بتنسيق مناسب، مثل JSON أو Excel.

الزحف على الويب مقابل تجريف الويب

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

4 استراتيجيات الزحف على شبكة الإنترنت

بشكل عام، تقوم برامج زحف الويب بزيارة جزء فقط من صفحات الويب بناءً على ميزانية الزاحف الخاصة بها، والتي يمكن تحديدها من خلال عوامل مثل الحد الأقصى لعدد الصفحات لكل مجال أو العمق أو المدة.

توفر العديد من المواقع الإلكترونية ملف robots.txt الذي يحدد أجزاء الموقع التي يمكن الزحف إليها وتلك المحظورة. بالإضافة إلى ذلك، يتوفر ملف sitemap.xml، وهو أكثر تفصيلاً من ملف robots.txt، حيث يُرشد الروبوتات إلى المسارات التي يجب الزحف إليها، ويوفر بيانات وصفية إضافية لكل عنوان URL.

تتضمن الاستخدامات الشائعة لبرامج زحف الويب ما يلي:

  1. تقوم محركات البحث مثل Googlebot، وBingbot، وYandex Bot بجمع HTML من جزء كبير من الويب، وفهرسة البيانات لجعلها قابلة للبحث بسهولة.
  2. لا تجمع أدوات تحليل تحسين محركات البحث HTML فحسب، بل تجمع أيضًا بيانات التعريف، مثل وقت الاستجابة وحالة الاستجابة، لتحديد الصفحات المعطلة وتتبع الروابط بين المجالات لتحليل الروابط الخلفية.
  3. تقوم أدوات مراقبة الأسعار بالزحف إلى مواقع التجارة الإلكترونية لتحديد صفحات المنتج واستخراج البيانات الوصفية، وخاصة الأسعار. تتم بعد ذلك إعادة النظر في صفحات المنتج هذه بشكل دوري.
  4. يحافظ الزحف المشترك على أ المستودع العام لبيانات الزحف على الويب، مثل ال أرشيف مايو 2022 تحتوي على 3.45 مليار صفحة ويب.

كيفية الزحف إلى مواقع جافا سكريبت

قد يكون زحف مواقع JavaScript أكثر صعوبة من زحف صفحات HTML الثابتة، لأن المحتوى غالبًا ما يُحمّل ويُعالج بواسطة شفرة JavaScript. لزحف هذه المواقع، يجب استخدام متصفح بدون واجهة رسومية قادر على تنفيذ JavaScript وعرض محتوى الصفحة. من الخيارات الشائعة لهذه المهمة الجمع بين مكتبة Puppeteer وبيئة تشغيل Node.js.

فيما يلي دليل خطوة بخطوة للزحف إلى مواقع JavaScript باستخدام Puppeteer وNode.js:

1. قم بتثبيت Node.js

قم بتنزيل وتثبيت أحدث إصدار من Node.js من الموقع الرسمي (https://nodejs.org/).

2. قم بإنشاء دليل مشروع جديد

قم بإنشاء دليل جديد لمشروعك وانتقل إليه باستخدام سطر الأوامر.

mkdir js-crawler
cd js-crawler

3. تهيئة مشروع Node.js الجديد

قم بتشغيل الأمر التالي في دليل المشروع الخاص بك لإنشاء ملف جديد package.json الملف بالإعدادات الافتراضية.

npm init -y

4. تثبيت محرك الدمى

قم بتثبيت Puppeteer عن طريق تشغيل الأمر التالي في دليل المشروع الخاص بك

npm install puppeteer

5. قم بإنشاء ملف جافا سكريبت جديد

قم بإنشاء ملف جديد بإسم

crawler.js

في دليل المشروع الخاص بك، والذي سيحتوي على التعليمات البرمجية للزحف إلى موقع JavaScript على الويب.

6. اكتب رمز الزاحف

يفتح

crawler.js

وأضف الكود التالي:

const puppeteer = require('puppeteer');
async function crawlJavaScriptWebsite(url) {

قم بتشغيل مثيل متصفح جديد

const browser = await puppeteer.launch({ headless: true });

إنشاء صفحة جديدة في المتصفح

const page = await browser.newPage();

انتقل إلى عنوان URL المستهدف

await page.goto(url, { waitUntil: 'networkidle2' })

استخراج البيانات من الصفحة باستخدام

evaluate()
const data = await page.evaluate(() => {

اكتب هنا كود جافا سكريبت المخصص لاستخراج البيانات التي تحتاجها. على سبيل المثال، لنستخرج جميع العناوين (عناصر h1) من الصفحة.

const headings = Array.from(document.querySelectorAll('h1')).map(heading => heading.textContent);
return {
headings,
};
});

أغلق المتصفح

await browser.close();

إرجاع البيانات المستخرجة

return data;
}

مثال الاستخدام:

crawlJavaScriptWebsite('https://example.com/')
.then(data => console.log(data))
.catch(err => console.error(err));

استبدل

https://example.com/

عنوان URL مع عنوان URL لموقع الويب المستهدف وتخصيص

page.evaluate()

وظيفة لاستخراج البيانات التي تحتاجها.

7. قم بتشغيل الزاحف

قم بتنفيذ الأمر التالي في دليل المشروع الخاص بك لتشغيل الزاحف:

node crawler.js

سيقوم البرنامج النصي بتشغيل متصفح بدون رأس، والانتقال إلى عنوان URL المستهدف، وتنفيذ كود JavaScript المحدد في ملف

page.evaluate()

وظيفة. سيتم تسجيل البيانات المستخرجة إلى وحدة التحكم.

ضع في اعتبارك أن هذا مثال أساسي للزحف إلى موقع ويب JavaScript. بالنسبة لحالات الاستخدام الأكثر تقدمًا، قد تحتاج إلى التفاعل مع الصفحة، أو التعامل مع طلبات AJAX، أو تمرير الصفحة، أو التعامل مع اختبارات CAPTCHA وملفات تعريف الارتباط.

كيفية الزحف إلى الويب باستخدام بايثون

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

الخطوة 1: تثبيت المكتبات المطلوبة

قم بتثبيت مكتبتي الطلبات والحساء الجميل باستخدام النقطة:

pip install requests beautifulsoup4

الخطوة 2: استيراد المكتبات

قم باستيراد المكتبات المطلوبة في برنامج Python النصي الخاص بك:

import requests
from bs4 import BeautifulSoup

الخطوة 3: إنشاء وظيفة لجلب محتوى صفحة الويب

قم بإنشاء وظيفة لجلب محتوى صفحة الويب باستخدام مكتبة الطلبات:

def fetch_page(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.text
    else:
        print(f"Failed to fetch {url} (status code {response.status_code})")
        return None

الخطوة 4: إنشاء وظيفة لتحليل محتوى صفحة الويب

قم بإنشاء وظيفة لتحليل محتوى صفحة الويب باستخدام مكتبة Beautiful Soup:

def parse_page(html):
    soup = BeautifulSoup(html, "html.parser")
return soup

الخطوة 5: إنشاء وظيفة لاستخراج الروابط من المحتوى الذي تم تحليله

قم بإنشاء وظيفة لاستخراج جميع الروابط من محتوى صفحة الويب التي تم تحليلها:

def extract_links(soup, base_url):
   links = []
    for a_tag in soup.find_all("a"):
        href = a_tag.get("href")
        if href and not href.startswith("#"):
            if not href.startswith("http"):
                href = base_url + href
            links.append(href)
    return links

الخطوة 6: إنشاء وظيفة للزحف إلى موقع الويب

قم بإنشاء وظيفة للزحف إلى موقع الويب بشكل متكرر:

def crawl_website(url, max_depth=2, depth=0):
    if depth > max_depth:
        return
    html = fetch_page(url)
    if not html:
        return
    soup = parse_page(html)
    links = extract_links(soup, url)
    print(f"{'  ' * depth}[{depth}] {url}")
    for link in links:
        crawl_website(link, max_depth, depth + 1)

الخطوة 7: تشغيل الزاحف

قم بتنفيذ الزاحف عن طريق استدعاء

crawl_website

تعمل بعنوان URL المطلوب والحد الأقصى للعمق:

if __name__ == "__main__":
start_url = "https://example.com/"
    max_depth = 2
    crawl_website(start_url, max_depth)

يوضح هذا الدليل خطوة بخطوة كيفية الزحف إلى موقع ويب باستخدام لغة Python. يمكنك تخصيص

crawl_website

وظيفة للتعامل مع هياكل موقع ويب محددة، أو إضافة منطق لتخزين المعلومات المستخرجة، أو تنفيذ ميزات زحف أكثر تقدمًا مثل التعامل مع ملف robots.txt، أو تحديد المعدل، أو موازنة الطلبات.

12 نصيحة حول كيفية الزحف إلى موقع ويب دون أن يتم حظره

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

#1: التحقق من بروتوكول استبعاد الروبوتات

قبل الزحف أو استخراج البيانات من موقع إلكتروني، تأكد من أن الجهة المستهدفة تسمح بجمع البيانات من صفحتها. افحص ملف بروتوكول استبعاد الروبوتات (robots.txt) الخاص بالموقع الإلكتروني والتزم بلوائحه.

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

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

#2: استخدم خادم وكيل

سيكون الزحف على الويب مستحيلًا تقريبًا بدون الوكلاء. اختر مزود خدمة وكيل حسن السمعة واختر بين مركز البيانات ووكلاء IP السكنيين بناءً على مهمتك.

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

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

#3: تدوير عناوين IP

عند استخدام مجموعة وكلاء، من المهم جدًا تدوير عناوين IP الخاصة بك.

إذا قمت بإرسال عدد كبير جدًا من الطلبات من نفس عنوان IP، فسيتعرف عليك موقع الويب المستهدف قريبًا كتهديد ويحظر عنوان IP الخاص بك. يسمح لك تدوير الوكيل بالظهور كما لو كنت من عدة مستخدمي إنترنت مختلفين ويقلل من احتمالية حظرك.

جميع وكلاء Oxylabs السكنيين يُبدّلون عناوين IP، ولكن إذا كنت تستخدم وكلاء مركز البيانات، فينبغي عليك استخدام خدمة تدوير الوكلاء. نقوم أيضًا بتدوير وكلاء IPv6 وIPv4. إذا كنت مهتمًا بالفرق بين IPv4 وIPv6، فاقرأ مقال زميلتي إيفيتا.

#4: استخدم وكلاء المستخدم الحقيقيين

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

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

نظرًا لأن كل طلب يقدمه متصفح الويب يحتوي على وكيل مستخدم، فيجب عليك تبديل وكيل المستخدم بشكل متكرر.

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

#5: اضبط بصمة إصبعك بشكل صحيح

أصبحت آليات مكافحة الخدش أكثر تعقيدًا، وتستخدم بعض مواقع الويب بروتوكول التحكم في الإرسال (TCP) أو بصمات IP لاكتشاف الروبوتات.

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

#6: الحذر من أفخاخ مصائد الجذب

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

#7: الاستفادة من خدمات حل اختبار CAPTCHA

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

#8: تغيير نمط الزحف

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

#9: تقليل سرعة المكشطة

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

#10: الزحف خارج ساعات الذروة

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

#11: تجنب تجريف الصور

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

#12: استخدم متصفحًا بلا رأس

المتصفح بدون رأس هو أداة تعمل مثل المتصفح العادي ولكن بدون واجهة مستخدم رسومية. يسمح لك بتجميع المحتوى الذي تم تحميله عن طريق عرض عناصر JavaScript. تحتوي المتصفحات الأكثر استخدامًا، Chrome وFirefox، على أوضاع مقطوعة الرأس يمكن استخدامها لتجميع الويب دون إثارة الكتل.

فيديو تعليمي حول كيفية الزحف إلى موقع ويب

في هذا البرنامج التعليمي من Oxylabs، ستتعرف على أساسيات البحث على الويب وأهميته لجمع البيانات، مع مناقشة الجوانب الأخلاقية والقانونية. يعرض البرنامج أدوات شائعة مثل Scrapy وBeautiful Soup وSelenium، ويساعدك على اختيار الأنسب لاحتياجاتك.

يساعدك هذا البرنامج التعليمي على فهم بنية موقع الويب، وإنشاء متتبع ويب بسيط، واستخراج المعلومات اللازمة. كما يُذكرك باتباع قواعد استخراج البيانات الجيدة، مثل احترام قواعد ملف robots.txt وعدم تحميل الخوادم أكثر من طاقتها.

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

خاتمة

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

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

الكسندر شميدت

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

اختر واشترِ وكيل (بروكسي)

اختر النوع والموقع والكمية لعرض الأسعار فورًا.

اختر واشترِ وكيل (بروكسي)