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

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

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

لذا، اجمع شجاعتك، وارتدي حذائك الافتراضي، ولنبدأ مغامرتنا التي تعتمد على البيانات معًا!

ما هي البيانات لكشط من الأمازون

هناك العديد من نقاط البيانات المرتبطة بمنتج أمازون، ولكن العناصر الأساسية التي يجب التركيز عليها عند استخراج البيانات تشمل ما يلي:

  1. عنوان المنتج
  2. يكلف
  3. المدخرات (عند الاقتضاء)
  4. ملخص العنصر
  5. قائمة الميزات المرتبطة (إن وجدت)
  6. درجة المراجعة
  7. صور المنتج

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

بعض المتطلبات الأساسية

لتحضير الحساء، نحتاج إلى المكونات الصحيحة. وبالمثل، تتطلب أداة استخراج الويب الجديدة لدينا مكونات محددة.

  • بايثون بفضل سهولة استخدامه ومجموعة مكتباته الواسعة، يُعد بايثون الخيار الأمثل لكشط بيانات الويب. إذا لم يكن مثبتًا مسبقًا، يُرجى مراجعة هذا الدليل.
  • BeautifulSoup - هذه واحدة من العديد من مكتبات تجريف الويب المتاحة لـ Python. إن بساطته واستخدامه النظيف يجعله خيارًا شائعًا لتجريد الويب. بعد تثبيت Python بنجاح، يمكنك تثبيت Beautiful Soup عن طريق تشغيل: pip install bs4
  • الفهم الأساسي لعلامات HTML - راجع هذا البرنامج التعليمي لاكتساب المعرفة اللازمة حول علامات HTML.
  • متصفح الإنترنت — نظرًا لأننا نحتاج إلى تصفية الكثير من المعلومات غير ذات الصلة من موقع الويب، فإن معرفات وعلامات محددة مطلوبة لأغراض التصفية. يعد متصفح الويب مثل Google Chrome أو Mozilla Firefox مفيدًا لتحديد هذه العلامات.

الإعداد للتقشير

للبدء، تأكد من تثبيت بايثون. إذا لم يكن لديك إصدار بايثون 3.8 أو أحدث، تفضل بزيارة python.org لتنزيل أحدث إصدار وتثبيته.

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

استخدم الأوامر التالية لإنشاء وتنشيط بيئة افتراضية على نظامي التشغيل macOS وLinux:

$ python3 -m venv .env 

$ source .env/bin/activate

بالنسبة لمستخدمي Windows، ستكون الأوامر مختلفة قليلاً:

d:amazon>python -m venv .env 

d:amazon>.envscriptsactivate

الآن حان الوقت لتثبيت حزم Python الضرورية.

ستحتاج إلى حزم لمهمتين رئيسيتين: الحصول على HTML وتحليله لاستخراج البيانات ذات الصلة.

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

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

هنا يأتي دور Beautiful Soup. Beautiful Soup هي مكتبة بايثون مصممة لاستخراج البيانات من الويب، حيث تستخرج البيانات من ملفات HTML وXML. تتيح لك استرجاع المعلومات من صفحة ويب بالبحث عن علامات أو سمات أو نص محدد.

لتثبيت كلتا المكتبتين، استخدم الأمر التالي:

$ python3 -m pip install requests beautifulsoup4

بالنسبة لمستخدمي Windows، استبدل "python3" بـ "python"، مع الحفاظ على بقية الأمر كما هو:

d:amazon>python -m pip install requests beautifulsoup4

لاحظ أننا نقوم بتثبيت الإصدار 4 من مكتبة Beautiful Soup.

الآن، لنختبر مكتبة استخراج البيانات Requests. أنشئ ملفًا جديدًا باسم amazon.py وأدخل الكود التالي:

import requests 

url = 'https://www.amazon.com/Bose-QuietComfort-45-Bluetooth-Canceling-Headphones/dp/B098FKXT8L'

response = requests.get(url)

print(response.text)

احفظ الملف وقم بتشغيله من المحطة.

$ python3 amazon.py

في معظم الحالات، لن تتمكن من عرض ملف HTML المطلوب. ستحظر أمازون الطلب، وستتلقى الرد التالي:

To discuss automated access to Amazon data please contact [email protected].

إذا قمت بطباعة response.status_code، فستجد أنك تتلقى خطأ 503 بدلاً من رمز النجاح 200.

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

الحل البسيط هو إرسال رؤوس مع طلبك تحاكي تلك التي يرسلها المتصفح.

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

للعثور على وكيل المستخدم الذي أرسله متصفحك، اضغط على F12، وافتح علامة التبويب "الشبكة"، وأعد تحميل الصفحة. حدد الطلب الأول وافحص رؤوس الطلب.

فحص رؤوس الطلب

انسخ وكيل المستخدم هذا وقم بإنشاء قاموس للرؤوس، مثل هذا المثال مع وكيل المستخدم ورؤوس لغة القبول:

custom_headers = { '

user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36', 

'accept-language': 'en-GB,en;q=0.9', 

}

يمكنك بعد ذلك إرسال هذا القاموس كمعلمة اختيارية في طريقة get:

response = requests.get(url, headers=custom_headers

كشط معلومات المنتج الأمازون

في عملية استخراج منتجات أمازون من الويب، ستتفاعل عادةً مع نوعين من الصفحات: صفحة الفئة وصفحة تفاصيل المنتج.

على سبيل المثال، قم بزيارة https://www.amazon.com/b?node=12097479011 أو ابحث عن سماعات فوق الأذن على أمازون. تُعرف الصفحة التي تعرض نتائج البحث بصفحة الفئة.

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

دعونا نقوم بتحليل بنية صفحة تفاصيل المنتج.

افتح عنوان URL للمنتج، مثل https://www.amazon.com/Bose-QuietComfort-45-Bluetooth-Canceling-Headphones/dp/B098FKXT8Lباستخدام Chrome أو أي متصفح حديث آخر. انقر بزر الماوس الأيمن فوق عنوان المنتج واختر فحص. سيتم تمييز علامة HTML لعنوان المنتج.

ستلاحظ أن هذه علامة span مع تعيين سمة id الخاصة بها على "productTitle".

علامة Span مع تعيين سمة المعرف الخاصة بها على "productTitle"

وبالمثل، انقر بزر الماوس الأيمن على السعر وحدد فحص لعرض علامة HTML للسعر.

مكون الدولار من السعر موجود في علامة نطاق مع الفئة "a-price-whole"، في حين أن مكون السنتات موجود في علامة نطاق أخرى مع فئة "a-price-fraction".

علامة Span ذات الفئة "a-price-fraction"

يمكنك أيضًا تحديد موقع التقييم والصورة والوصف بنفس الطريقة.

بمجرد جمع هذه المعلومات، أضف الأسطر التالية إلى الكود الموجود:

response = requests.get(url, headers=custom_headers) 

soup = BeautifulSoup(response.text, 'lxml')

يقدم Beautiful Soup طريقة مميزة لاختيار الوسوم باستخدام طرق البحث. كما يدعم محددات CSS كبديل. يمكنك استخدام أيٍّ من الطريقتين لتحقيق نفس النتيجة. في هذا البرنامج التعليمي، سنستخدم محددات CSS، وهي طريقة عالمية لاختيار العناصر. تتوافق محددات CSS مع جميع أدوات استخراج بيانات الويب تقريبًا لاستخراج معلومات منتجات أمازون.

أنت الآن جاهز لاستخدام كائن Soup للاستعلام عن معلومات محددة.

استخراج اسم المنتج

اسم المنتج أو عنوانه موجود في عنصر span ذي المعرف "productTitle". اختيار العناصر باستخدام معرفات فريدة أمر بسيط.

خذ بعين الاعتبار الكود التالي كمثال:

title_element = soup.select_one('#productTitle') 

نقوم بتمرير محدد CSS إلى طريقة Select_one، والتي تقوم بإرجاع مثيل العنصر.

لاستخراج المعلومات من النص، استخدم سمة النص.

title = title_element.text

عند الطباعة، قد تلاحظ بعض المسافات البيضاء. لحل هذه المشكلة، قم بإضافة استدعاء دالة .strip() كما يلي:

title = title_element.text.strip()

استخراج تقييمات المنتج

يتطلب الحصول على تقييمات منتجات أمازون بعض الجهد الإضافي.

أولاً، قم بإنشاء محدد للتقييم:

#acrPopover

بعد ذلك، استخدم العبارة التالية لتحديد العنصر الذي يحتوي على التصنيف:

rating_element = soup.select_one('#acrPopover')

لاحظ أن قيمة التصنيف الفعلية موجودة ضمن سمة العنوان:

rating_text = rating_element.attrs.get('title') 

print(rating_text)

# prints '4.6 out of 5 stars'

وأخيراً استخدم طريقة الاستبدال للحصول على التصنيف العددي:

rating = rating_text.replace('out of 5 stars', '')

استخراج سعر المنتج

يمكن العثور على سعر المنتج في موقعين — أسفل عنوان المنتج وداخل مربع الشراء الآن.

يمكن استخدام أي من هاتين العلامتين لاستخلاص أسعار منتجات أمازون.

قم بإنشاء محدد CSS للسعر:

#price_inside_buybox

قم بتمرير محدد CSS هذا إلى طريقة Select_one الخاصة بـ BeautifulSoup مثل هذا:

price_element = soup.select_one('#price_inside_buybox')

الآن يمكنك طباعة السعر:

print(price_element.text)

استخراج الصورة

لاستخراج الصورة الافتراضية، استخدم محدد CSS #landingImage. باستخدام هذه المعلومات، يمكنك كتابة أسطر التعليمات البرمجية التالية للحصول على عنوان URL للصورة من السمة src:

image_element = soup.select_one('#landingImage') 

image = image_element.attrs.get('src')

استخراج وصف المنتج

الخطوة التالية في استخراج بيانات منتج أمازون هي الحصول على وصف المنتج.

تظل العملية متسقة — قم بإنشاء محدد CSS واستخدم طريقة Select_one.

محدد CSS للوصف هو:

#productDescription

وهذا يسمح لنا باستخراج العنصر على النحو التالي:

description_element = soup.select_one('#productDescription') 

print(description_element.text)

التعامل مع قائمة المنتجات

لقد استكشفنا عملية جمع معلومات المنتج، ولكنك ستحتاج إلى البدء بقوائم المنتجات أو صفحات الفئات للوصول إلى بيانات المنتج.

على سبيل المثال، https://www.amazon.com/b?node=12097479011 هي صفحة فئة سماعات الرأس فوق الأذن.

عند فحص هذه الصفحة، ستجد أن جميع المنتجات موجودة ضمن قسم ذي سمة فريدة [data-asin]. داخل هذا القسم، توجد جميع روابط المنتجات ضمن وسم h2.

باستخدام هذه المعلومات، يكون محدد CSS هو:

[data-asin] h2 a

يمكنك قراءة سمة href لهذا المُحدِّد وتشغيل حلقة تكرارية. مع ذلك، تذكّر أن الروابط ستكون نسبية. ستحتاج إلى استخدام دالة urljoin لتحليل هذه الروابط.

from urllib.parse import urljoin 

... 

def parse_listing(listing_url): 

… 

    link_elements = soup_search.select("[data-asin] h2 a") 

    page_data = [] 

    for link in link_elements: 

        full_url = urljoin(search_url, link.attrs.get("href")) 

        product_info = get_product_info(full_url) 

        page_data.append(product_info)

التعامل مع ترقيم الصفحات

رابط الصفحة التالية موجود في رابط يحتوي على النص "التالي". يمكنك البحث عن هذا الرابط باستخدام عامل تشغيل CSS كما يلي:

next_page_el = soup.select_one('a:contains("Next")')

if next_page_el:

    next_page_url = next_page_el.attrs.get('href')

    next_page_url = urljoin(listing_url, next_page_url)

تصدير بيانات أمازون

يتم إرجاع البيانات المسروقة كقاموس عن قصد. يمكنك إنشاء قائمة تحتوي على جميع المنتجات المسروقة.

def parse_listing(listing_url):

...

page_data = [] for link in link_elements:

...

product_info = get_product_info(full_url)

page_data.append(product_info)

يمكنك بعد ذلك استخدام page_data لإنشاء كائن Pandas DataFrame:

df = pd.DataFrame(page_data) 

df.to_csv('headphones.csv', index = False)

كيفية كشط صفحات متعددة على الأمازون

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

هنا 6 نقاط رئيسية يجب وضعها في الاعتبار عند نسخ صفحات متعددة على أمازون:

  1. تحديد نمط ترقيم الصفحات: أولاً، قم بتحليل بنية عنوان URL للفئة أو صفحات نتائج البحث لفهم كيفية قيام أمازون بترقيم محتواها. يمكن أن يكون هذا معلمة استعلام (على سبيل المثال، "?page=2") أو معرفًا فريدًا مضمنًا في عنوان URL.
  2. استخرج رابط الصفحة "التالي": حدد موقع العنصر (عادةً علامة ربط) الذي يحتوي على رابط الصفحة التالية. استخدم محدد CSS المناسب أو طريقة Beautiful Soup لاستخراج سمة href لهذا العنصر، وهو عنوان URL للصفحة التالية.
  3. تحويل عناوين URL النسبية إلى عناوين URL المطلقة: نظرًا لأن عناوين URL المستخرجة قد تكون نسبية، استخدم ملف urljoin وظيفة من urllib.parse مكتبة لتحويلها إلى عناوين URL مطلقة.
  4. إنشاء حلقة: قم بتنفيذ حلقة تتكرر عبر الصفحات، وتستخرج البيانات المطلوبة من كل صفحة. يجب أن تستمر الحلقة حتى لا يتبقى أي صفحات أخرى، وهو ما يمكن تحديده عن طريق التحقق من وجود رابط الصفحة "التالي" في الصفحة الحالية.
  5. إضافة تأخيرات بين الطلبات: لتجنب إرهاق خادم أمازون أو إثارة إجراءات مكافحة الروبوتات، قم بإدخال تأخيرات بين الطلبات باستخدام time.sleep() وظيفة من time مكتبة. اضبط مدة التأخير لمحاكاة سلوك التصفح البشري.
  6. التعامل مع اختبارات CAPTCHA والكتل: إذا واجهت اختبارات CAPTCHA أو عمليات حظر IP أثناء نسخ صفحات متعددة، ففكر في استخدام الوكلاء لتدوير عناوين IP أو أدوات وخدمات النسخ المخصصة التي يمكنها التعامل مع هذه التحديات تلقائيًا.

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

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

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

تجريف الأمازون: الأسئلة الشائعة

عند استخراج البيانات من أمازون، منصة التجارة الإلكترونية الشهيرة، هناك أمور يجب مراعاتها. لنستعرض الأسئلة الشائعة المتعلقة باستخراج بيانات أمازون.

1. هل من القانوني سرقة أمازون؟

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

2. هل تسمح أمازون بالقشط؟

على الرغم من أن استخلاص البيانات المتاحة للعامة أمر قانوني، إلا أن أمازون تتخذ أحيانًا إجراءات لمنع الاستخلاص. تتضمن هذه الإجراءات طلبات تحديد المعدل، وحظر عناوين IP، واستخدام بصمات المتصفح للكشف عن الروبوتات المستخرجة. تقوم أمازون عادةً بحظر تجريف الويب باستخدام رمز الاستجابة لحالة النجاح 200 OK ويطلب منك تمرير اختبار CAPTCHA أو إظهار رسالة HTTP Error 503 Service Unavailable للاتصال بالمبيعات للحصول على واجهة برمجة تطبيقات مدفوعة.

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

3. هل من الأخلاقي استخراج بيانات أمازون؟

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

4. كيف يمكنني تجنب التعرض للحظر أثناء تجريف أمازون؟

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

5. ما هي مخاطر كشط الأمازون؟

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

خاتمة

مع خروجنا من متاهة أمازون الآسرة لاستخراج بيانات الويب، حان الوقت لنُقدّر المعرفة والمهارات القيّمة التي اكتسبناها في هذه الرحلة المُثيرة. مع ProxyCompass دليلك الموثوق، نجحتَ في اجتياز صعوبات استخراج بيانات لا تُقدّر بثمن من عملاق تجارة التجزئة. وبينما تُغامر، مُستخدمًا خبرتك الجديدة ببراعة، تذكّر أن الغابة الرقمية في تطور مُستمر.

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

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

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

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

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

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