تريد المساعدة؟ إليك خياراتك:","كرانش بيس","نبذة عنا","شكراً للجميع على الدعم الرائع!","روابط سريعة","برنامج الإحالة","بريميوم","ProxyScrape تجربة متميزة","مدقق الوكلاء عبر الإنترنت","أنواع الوكلاء","الدول الوكيلة","حالات استخدام الوكيل","مهم","سياسة ملفات تعريف الارتباط","إخلاء المسؤولية","سياسة الخصوصية","الشروط والأحكام","وسائل التواصل الاجتماعي","فيسبوك","لينكد إن","تويتر","كورا","برقية","الخلاف","\n © حقوق الطبع والنشر © 2024 - ثيب بي في | بروغسترات 18 | 2812 ميكلين | بلجيكا | ضريبة القيمة المضافة BE 0749 716 760\n"]}
هل تبحث عن طرق للاستفادة من التقنيات الجديدة؟ يوفر لك استخراج الويب أو كشط الويب طريقة لجمع بيانات الويب المنظمة بطريقة آلية. على سبيل المثال، يتم استخدام كشط الويب في عالم التجارة الإلكترونية لمراقبة أسعار خدمات ومنتجات المنافسين. حالات استخدام أخرى لكشط الويب
هل تبحث عن طرق للاستفادة من التقنيات الجديدة؟ يوفر لك استخراج الويب أو كشط الويب طريقة لجمع بيانات الويب المنظمة بطريقة آلية. على سبيل المثال، يتم استخدام كشط الويب في عالم التجارة الإلكترونية لمراقبة أسعار خدمات ومنتجات المنافسين. فيما يلي حالات استخدام أخرى لكشط الويب.
سوف تتعلم كيفية القيام بكشط الويب باستخدام Node.js. لكن أولاً، سنلقي نظرة على ماهية Node.js. إنها منصة مفتوحة المصدر من جانب الخادم لتطوير تطبيقات من جانب الخادم والشبكات. تتميز مكتبتها بسرعة كبيرة في تنفيذ التعليمات البرمجية لأن تطبيقاتها لا تقوم بتخزين أي بيانات. فهي ببساطة تقوم بإخراج البيانات في أجزاء. فيما يلي بعض المجالات التي يمكننا فيها استخدام Node.js.
فيما يلي أسباب استخدام Node.js لكشط الويب.
سهل التعلم - جافا سكريبت هي لغة برمجة شائعة يستخدمها مطورو الواجهة الأمامية. يمكنهم تعلم واستخدام Node.js بسرعة في الواجهة الخلفية لأنها لغة جافا سكريبت بسيطة. لذلك، لا يتعين عليهم بذل جهد إضافي في تعلم Node.js.
لغة برمجة واحدة - يمكنك استخدام Node.js لكتابة تطبيقات من جانب الخادم بلغة جافا سكريبت. باختصار، يستخدم مطورو Node.js لغة جافا سكريبت لكتابة تطبيقات الويب الأمامية والخلفية على حد سواء. لا يحتاجون إلى استخدام أي لغة برمجة أخرى من جانب الخادم. وبالتالي، يمكنهم نشر تطبيقات الويب بسهولة لأن جميع متصفحات الويب تقريبًا تدعم Javascript.
قابلية التوسع - يمكن لمطوري Node.js توسيع نطاق التطبيقات بسهولة في الاتجاهين الأفقي والرأسي. يمكنهم إضافة عقد إضافية إلى الأنظمة الحالية لتوسيع نطاق التطبيقات أفقياً. يمكنهم توسيع نطاق التطبيقات عموديًا عن طريق إضافة موارد إضافية إلى العقد الفردية.
أداء عالٍ - يستخدم Node.js محرك V8 Javascript من Google لتفسير شيفرة جافا سكريبت حيث يقوم بتجميعها مباشرةً في كود الآلة. وبالتالي، يمكنك تنفيذ الكود بفعالية باستخدام هذا المحرك.
التخزين المؤقت - يمكن للمطورين أيضًا تخزين الوحدات المفردة مؤقتًا باستخدام بيئة وقت تشغيل Node.js مفتوحة المصدر. يسمح التخزين المؤقت للتطبيقات بتحميل صفحات الويب بشكل أسرع، بحيث لا يضطر المطورون إلى إعادة استخدام الأكواد.
لكشط الويب باستخدام Node.js، سنستخدم وحدتي npm التاليتين.
شيريو - هي تقنية جافا سكريبت تُستخدم لاستخراج البيانات من المواقع الإلكترونية. تساعد على تحديد عناصر DOM وتحريرها وعرضها.
طلب الوعد - هو عميل HTTP بسيط يمكنك استخدامه لإجراء مكالمات HTTP سريعة وسهلة.
عليك إنشاء مجلد مشروع جديد. قم بإنشاء ملف index.js داخل هذا المجلد. ثم عليك تثبيت التبعيات. لهذا، افتح سطر الأوامر واكتب الأمر التالي.
تثبيت npm -حفظ الطلب-حفظ الطلب-وعد الطلب-مبهج
يجب عليك أن تطلب وعد الطلب والبهجة في ملف index.js الخاص بك باستخدام الكود أدناه.
const rp = يتطلب('طلب-وعد');
const cheerio = يتطلب('cheerio');
أنت تعلم أن طلب الوعد هو "طلب" عميل مع دعم الوعد. بمعنى آخر، يقبل كائنًا كمدخل ويعيد وعدًا.
const options = {
uri: `https://www.yourURLhere.com`,
transform: function (body) {
return cheerio.load(body);
}
};
في الشيفرة أعلاه، يجب أن يقوم كائن الخيارات بأمرين.
مفتاح uri في الكود هو الموقع الإلكتروني الذي تريد كشطه.
يقوم مفتاح التحويل بتحميل الجسم الذي تم إرجاعه إلى شيريو باستخدام وعد الطلب قبل إعادته إلينا.
يمكنك تقديم طلبك باستخدام الرمز أدناه.
rp(OPTIONS)
.then(function (data) {
// REQUEST SUCCEEDED: DO SOMETHING
})
.catch(function (err) {
// REQUEST FAILED: ERROR OF SOME KIND
});
نقوم بتمرير كائن الخيارات إلى طلب الوعد في الشيفرة أعلاه. ثم ننتظر لنرى ما إذا كان طلبنا ينجح أو يفشل.
والآن، ننشئ نسختنا الخاصة من الشيفرة التي نستخدم فيها دوال الأسهم كما هو موضح أدناه.
rp(options)
.then(($) => {
console.log($);
})
.catch((err) => {
console.log(err);
});
عليك استبدال العنصر النائب uri بالموقع الإلكتروني الذي تريد كشطه. يمكنك بعد ذلك فتح وحدة التحكم الخاصة بك وكتابة ما يلي في ملف index.js.
{ [Function: initialize]
fn:
initialize {
constructor: [Circular],
_originalRoot:
{ type: 'root',
name: 'root',
namespace: 'http://www.w3.org/1999/xhtml',
attribs: {},
...
هذه هي الطريقة التي يمكنك بها إجراء أول كشط باستخدام Node.js. إليك الكود الكامل الذي قمنا به حتى الآن.
const rp = require('request-promise');
const cheerio = require('cheerio');
const options = {
uri: `https://www.google.com`,
transform: function (body) {
return cheerio.load(body);
}
};
rp(options)
.then(($) => {
console.log($);
})
.catch((err) => {
console.log(err);
});
يمكنك استخدام cheerio لاستخراج البيانات التي تريدها. تطبيق محدد التشيريو هو تقريبًا نفس تطبيق محدد jQuery. يمكنك استخدام طريقة المحدد لاستعراض وتحديد العناصر في المستند. يمكنك أيضًا استخدامه للحصول على البيانات وتعيينها. على سبيل المثال، تريد كشط HTML التالي من موقع ويب.
id="مدن">
- class="كبير">أوروبا
- id="متوسط">تركيا
- class="صغير">سالم
- صغير
">سالم
يمكننا استخدام "#" لتحديد المعرفات، " # " لتحديد الفئات . يمكن تحديد العناصر بأسماء وسومها كما هو موضح أدناه.
$('.large').text()
// أوروبا
$('#متوسط').text()
// تركيا
$('li[class=small]).html()
يمكننا استخدام دالة كل () للتكرار من خلال عناصر متعددة. يمكننا إرجاع النص الداخلي لعنصر القائمة باستخدام نفس شيفرة HTML الموضحة أعلاه.
$('li').each(function(i, elem) {
cities[i] = $(this).text();
});
هكذا يمكنك كشط البيانات من المواقع الإلكترونية باستخدام Node.js. يمكنك أيضًا استخدام طرق إضافية لاستخراج بيانات العناصر التابعة لقائمة أو HTML لموقع ويب.
أنت تعلم أن الوكلاء يعملون كوسطاء بين العملاء الذين يطلبون الموارد والخادم الذي يوفر الموارد. هناك ثلاثة أنواع مختلفة من الوكلاء، كما هو موضح أدناه.
وكيل سكني - يحتوي هذا الوكيل على عناوين IP من مزود خدمة الإنترنت المحلي (ISP)، لذلك لا يمكن للموقع المستهدف تحديد ما إذا كان شخصًا حقيقيًا أو مكشطة تتصفح الموقع.
بروكسي مركز البيانات - هذا النوع من البروكسي يكون من مزود خدمة سحابية ويستخدمه عدد كبير من الأشخاص لأنه أرخص من البروكسيات السكنية.
بروكسي الهاتف المحمول - وكلاء الهاتف المحمول هم عناوين IP للأجهزة المحمولة الخاصة ويعملون تماماً مثل الوكلاء المقيمين. يتم توفيرها من قبل مشغلي شبكات الهاتف المحمول وهي مكلفة للغاية.
يمكنك استخدام وكيل لكشط الويب باستخدام وحدة طلبات بايثون. أولاً، عليك استيراد وحدة الطلبات. بعد ذلك، عليك إنشاء مجموعة من البروكسيات وتكرارها. يمكنك استخدام requests.get() لإرسال طلب GET عن طريق تمرير وكيل كمعامل لعنوان URL، كما هو موضح أدناه.
import requests
proxy = 'http://114.121.248.251:8080'
url = 'https://ipecho.net/plain'
# Sending a GET request to the url and
# passing the proxy as a parameter.
page = requests.get(url,
proxies={"http": proxy, "https": proxy})
# Printing the content of the requested url.
print(page.text)
ستحصل على الناتج أدناه.
ناقشنا حتى الآن أنه يمكنك استخراج البيانات المنظمة من مواقع الويب باستخدام طريقة آلية تسمى كشط الويب. يمكنك كشط مواقع الويب باستخدام لغات مختلفة، ولكن في هذه المقالة، تعلمنا كيفية استخدام Node.js لجمع البيانات من مواقع الويب. كل ما علينا فعله هو إضافة كود في ملف index.js في مجلد المشروع. بعد إعداد المشروع، يمكننا تعيين وإجراء الطلب لاستخراج البيانات. علاوة على ذلك، يمكننا استخدام البيانات لأغراض مختلفة. أنت تعلم أنه ليس من الآمن كشط المواقع الإلكترونية. لذلك، عليك استخدام الوكلاء لجمع البيانات من موقع الويب الذي تريده. يمكنك استخدام البروكسيات السكنية أو مراكز البيانات، ولكن يفضل استخدام البروكسيات السكنية لأنها سريعة ولا يمكن اكتشافها بسهولة.