الزحف السلوكي ليس حلا سحريا؟

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


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


- أكثر! المزيد من الذهب!
لكن صفيرته كانت بالكاد مسموعة وظهر الرعب في عينيه

(حكاية خرافية "الظباء الذهبية")


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


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


بمعنى آخر ، يمكن وضع تقنيات الزحف على مقياس التعقيد:


تتويج مقياس التكنولوجيا


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


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


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


شريط المعلومات


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


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


  • شريط بسيط مليء بالمحتوى من مصادر ثابتة ؛
  • خلاصة موضوع مليئة بالمحتوى وفقًا للكلمات والعبارات ومصطلحات البحث.

مثال على موجز بسيط بمصادر ثابتة ( يتم تعيين قوائم عناوين URL لملفات التعريف والصفحات ):




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




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


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


مثال على الشريط الموضوعي:




في المستقبل ، يتم استخدام الأشرطة كمصدر للتحولات التحليلية مع التصور اللاحق للنتائج ، على سبيل المثال ، في شكل رسم بياني:




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




تجمع المهام


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


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


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


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


المستخدمين الظاهري


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


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

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


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


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


ولكن ماذا عن الجانب الأخلاقي والقانوني لاستخدام المستخدمين الظاهري؟


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


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


إدارة الموارد الافتراضية المشتركة


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


  • عنوان عقدة الإخراج (IP الخارجي) - مرتبط بواحد أو أكثر من المستخدمين الظاهري ؛
  • الملف الشخصي للمتصفح - يرتبط بمستخدم افتراضي واحد ؛
  • مورد الحوسبة - المتصل بالخادم ، يحدد قيود الخادم ككل ولكل نوع من المهام ؛
  • شاشة افتراضية - لتعيين قيود الخادم ، ولكن يستخدمه المستخدم الظاهري.

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


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


في الحالة العامة ، تتكون دورة حياة المورد من مراحل معينة:


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

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


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

مثال لسجل الموارد الافتراضية للمستخدم:




حالة رائعة لم تتجذر


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


مثال على رسم بياني بسيط للبحث عن الأشخاص والعلاقات بينهم:



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




على سبيل المثال ...

كمثال ، يمكننا النظر في بعض الحالات البسيطة:


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


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


تقمص


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


مثال على النموذج الأنطولوجي للموضوع "الشبكات الاجتماعية" (النقر على صورة المحرر يفتح):




مثال على رسم بياني تحليلي للبحث على أساس الأنطولوجيا أعلاه (النقر على الصورة يفتح المحرر):




مكدس تقنية الكتلة




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


باختصار ، يعتمد النظام على نظام Akka ، ومترجم وحيد القرن وخادم الويب Jetty المدمج. يمكن رؤية بعض الميزات المعمارية المفيدة في المخطط أعلاه. , , , JavaScript- , jsBeans .




, – .



Java. , , – - JavaScript. JavaScript ( ), , , . – , , , , , - .



Akka - . - Akka Cluster , . , " " ( ) .



Selenium WebDriver , : , , API . WebDriver ( , IP ).


( ):


  • , , Xvfb;
  • VNC , , x11vnc;
  • VNC Web Viewer , , noVNC -.


MongoDB, – . Elasticsearch, MongoDB. (H2, EhCache, Db4o).



" ", , bash , ( ). . , .




, .


. – . , " ".


, .



,

( « »)

Source: https://habr.com/ru/post/ar454204/


All Articles