ما هي الاعتبارات الأساسية عند إنشاء زاحف الويب؟

StackOverflow https://stackoverflow.com/questions/32366

  •  09-06-2019
  •  | 
  •  

سؤال

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

أرغب في استخدام الزاحف للتجول عبر "الويب" لغرض بسيط للغاية - "هل يفي ترميز موقع XYZ بالشرط ABC؟".

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

  • يبدو الأمر "غير مرتب" قليلاً منذ البداية - هل هذا النوع من الأشياء مقبول؟
  • ما هي الاعتبارات المحددة التي يجب على الزاحف أخذها حتى لا يزعج الأشخاص؟
هل كانت مفيدة؟

المحلول

اتبع ملف robots.txt (وليس عدوانيًا جدًا كما قيل بالفعل).

قد ترغب في التفكير في سلسلة وكيل المستخدم الخاصة بك - فهي مكان جيد لتكون صريحًا بشأن ما تفعله وكيف يمكن الاتصال بك.

نصائح أخرى

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

بعض الروابط المفيدة:

HTTP/1.1:تعريفات رمز الحالة

اختبارات HTTP للعميل المجمع

ويكيبيديا

يرجى التأكد من تضمين عنوان URL في سلسلة وكيل المستخدم الخاص بك والذي يشرح من/ماذا/لماذا يقوم الروبوت الخاص بك بالزحف.

كل النقاط الجيدة، تلك المذكورة هنا.سيتعين عليك أيضًا التعامل مع روابط Java وJavaScript التي تم إنشاؤها ديناميكيًا، والمعلمات ومعرفات الجلسة، والهروب من علامات الاقتباس المفردة والمزدوجة، والمحاولات الفاشلة للروابط النسبية (باستخدام ../../ لتجاوز الدليل الجذر)، وحساسية حالة الأحرف، الإطارات، عمليات إعادة التوجيه، ملفات تعريف الارتباط ....

يمكنني الاستمرار لعدة أيام، وقد فعلت ذلك نوعًا ما.انا املك قائمة مراجعة الروبوتات الذي يغطي معظم هذا، ويسعدني الإجابة على ما أستطيع.

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

لا تنس أيضًا الالتزام بالعلامات الوصفية للبوت: http://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.2

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

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

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

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

أنت تبحث فقط عن كود المصدر بقدر ما أستطيع أن أقول، لذلك ستحتاج إلى إنشاء شيء لتتبعه <link>لأوراق الأنماط و <script src="..."></script> لجافا سكريبت.

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

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top