أقوم بتشغيل موقع ويب لأحد العملاء حيث يعرضون قاعدة بيانات كبيرة من المعلومات التي جمعوها بدقة وببطء على مر السنين. يعثرون على بياناتهم عبر الويب في أماكن مختلفة. أكثر من المحتمل أن يكون ذلك بسبب وجود مكشطة من خلال صفحة الموقع الخاصة بهم عن طريق الصفحة واستخراج المعلومات التي يحتاجون إليها في قاعدة بيانات خاصة بهم. وإذا كنت تتساءل ، فهم يعلمون أنها بياناتهم بسبب قطعة بيانات واحدة مزروعة في كل فئة على موقعهم.
لقد أجريت الكثير من الأبحاث حول هذا الموضوع في اليومين الماضيين ، ويمكنني أن أخبرك أنه لا يوجد حل مثالي. لقد وجدت العديد من الأشياء التي يجب القيام بها لجعل تحقيق ذلك أصعب قليلاً بالنسبة لهم. هذا ما نفذته للعميل.
Ajaxified ترقيم الصفحات البيانات
إذا كان لديك الكثير من البيانات المرقّمة ، وكنت ترقيم صفحاتك بمجرد إلحاق رقم مختلف بنهاية عنوان URL الخاص بك ، على سبيل المثال http://www.domain.com/category/programming/2 - فأنت تقوم بإجراء وظيفة الزاحف التي أسهل بكثير. المشكلة الأولى هي ، في نمط يمكن تحديده بسهولة ، لذلك وضع مكشطة فضفاضة على هذه الصفحات سهلة مثل فطيرة. المشكلة الثانية ، بصرف النظر عن عنوان URL للصفحات التالية في الفئة ، أكثر من المحتمل أن يكون هناك رابط تالي وسابق لهما.
عن طريق تحميل البيانات المرقّمة من خلال javascript دون إعادة تحميل الصفحة ، يؤدي هذا إلى تعقيد المهمة إلى حد كبير بالنسبة للكثير من الكاشطات الموجودة هناك. بدأت Google مؤخرًا في تحليل جافا سكريبت على الصفحة. هناك القليل من العيوب لإعادة تحميل البيانات مثل هذا. أنت تقدم Google بضع صفحات أقل للفهرسة ، ولكن من الناحية الفنية ، يجب أن تشير جميع الصفحات المرقّمة إلى صفحة فئة الجذر عن طريق التجميع على أي حال. Ajaxify صفحاتك المقسمة إلى صفحات من البيانات.
عشوائيا إخراج القالب
غالبًا ما يتم تخصيص أدوات الكشط قليلاً لبياناتك على وجه التحديد. سوف يتمسكون بمعرف div أو فئة معينة للعنوان ، والخلية الثالثة في كل صف لوصفك ، وما إلى ذلك. هناك نمط يمكن التعرف عليه بسهولة لمعظم الكاشطات للعمل مع معظم البيانات الواردة من نفس الجدول ، يتم عرض بواسطة نفس القالب. اعشوائي المعرفات div وأسماء الفصل ، وأدخل أعمدة الجدول الفارغة عشوائياً بعرض 0. أظهر بياناتك في جدول في صفحة واحدة ، وفي divs ذات نمط وتركيبة في قالب آخر. من خلال تقديم البيانات الخاصة بك بشكل متوقع ، يمكن كشطها بشكل متوقع ودقيق.
وعاء العسل
هذا جميل جدا في بساطته. لقد صادفت هذه الطريقة في عدة صفحات حول منع تجريف الموقع.
- قم بإنشاء ملف جديد على الخادم الخاص بك يسمى gotcha.html.
- في ملف robots.txt ، أضف ما يلي:
وكيل المستخدم: *
عدم السماح: /gotcha.html
هذا يخبر جميع الروبوتات والعناكب هناك فهرسة موقعك لعدم فهرسة الملف gotcha.html. سيحترم أي متتبع ارتباطات ويب عادي رغبات ملف robots.txt الخاص بك ولن يصل إلى هذا الملف. أي جوجل وبينغ. قد ترغب بالفعل في تنفيذ هذه الخطوة ، وانتظر 24 ساعة قبل الانتقال إلى الخطوة التالية. سيضمن هذا عدم حظرك للزاحف عن غير قصد نظرًا لحقيقة أنه قد تم الزحف إليه بالفعل عند تحديث ملف robots.txt الخاص بك. - ضع رابطًا لموقع gotcha.html في مكان ما على موقع الويب الخاص بك. لا يهم أين. أوصي في التذييل ، ومع ذلك ، تأكد من أن هذا الرابط غير مرئي ، في CSS ، عرض: لا شيء ؛
- الآن ، قم بتسجيل معلومات IP / العامة لل perp الذي زار هذه الصفحة وحظرها. بدلاً من ذلك ، يمكنك الخروج ببرنامج نصي لتزويدهم ببيانات غير صحيحة وبيانات غير مقبولة. أو ربما رسالة شخصية جميلة منك.
لن يتمكن المشاهدون العاديون من مشاهدة الرابط ، لذلك لن يتم النقر عليه بطريق الخطأ. ستحترم برامج الزحف ذات السمعة الطيبة (Google على سبيل المثال) رغبات ملف robots.txt الخاص بك ولن تقوم بزيارة الملف. لذا ، فإن أجهزة الكمبيوتر الوحيدة التي يجب أن تتعثر عبر هذه الصفحة هي تلك التي لديها نوايا خبيثة ، أو شخص ما يشاهد شفرة المصدر الخاصة بك والنقر بشكل عشوائي حولها (وكذلك إذا حدث ذلك).
هناك بعض الأسباب التي قد لا تعمل دائمًا. أولاً ، لا تعمل الكثير من أدوات الكشط مثل برامج زحف الويب العادية ، ولا تكتشف البيانات فقط عن طريق اتباع كل رابط من كل صفحة على موقعك. غالبًا ما يتم إنشاء أدوات الكشط لتثبيتها على صفحات معينة واتباع هياكل معينة فقط. على سبيل المثال ، قد يتم بدء تشغيل مكشطة في صفحة فئة ، ثم يُطلب منها فقط زيارة عناوين URL التي تحتوي على الكلمة / البيانات الموجودة في المربع المعزول. ثانياً ، إذا كان شخص ما يستخدم مكشطه على نفس الشبكة مثل الآخرين ، وكان هناك عنوان IP مشترك قيد الاستخدام ، فستحظر الشبكة بالكامل. يجب أن يكون لديك موقع ويب مشهور جدًا حتى تكون هذه مشكلة.
كتابة البيانات على الصور على الطاير
ابحث عن حقل أصغر من البيانات ، وليس بالضرورة سلاسل نصية طويلة لأن هذا قد يجعل تصميم الصفحة أكثر صعوبة بعض الشيء. إخراج هذه البيانات داخل صورة ما ، وأنا واثق تمامًا من وجود طرق في كل لغة برمجة تقريبًا لكتابة نص إلى صورة بشكل ديناميكي (في php ، imagettftext). ربما يكون هذا أكثر فعالية مع القيم العددية حيث توفر الأرقام ميزة تحسين محركات البحث (SEO) غير ذات أهمية.
لبديل
لم يكن هذا خيارًا لهذا المشروع. يتطلب تسجيل الدخول بعد قدر معين من مرات مشاهدة الصفحة ، أو عرض كمية محدودة من البيانات دون تسجيل الدخول. أي إذا كان لديك 10 أعمدة ، فقم بعرض 5 فقط للمستخدمين غير المسجلين.
لا ترتكب هذا الخطأ
لا تهتم بمحاولة التوصل إلى نوع من الحلول استنادًا إلى وكيل المستخدم للبوت. يمكن بسهولة خداع هذه المعلومات بواسطة مكشطة تعرف ماذا يفعلون. بوت جوجل على سبيل المثال يمكن محاكاة بسهولة. أنت أكثر من المحتمل لا تريد حظر Google.