كتابة الزاحف الذي يبقى مسجلاً الدخول مع أي خادم
-
05-07-2019 - |
سؤال
أنا أكتب الزاحف.بمجرد أن يقوم الزاحف بتسجيل الدخول إلى موقع ويب، أريد أن أجعل الزاحف "يظل مسجل الدخول دائمًا".كيف أقوم بذلك؟هل يقوم العميل (مثل المتصفح والزاحف وما إلى ذلك) بإنشاء خادم للامتثال لهذه القاعدة؟يمكن أن يحدث هذا السيناريو عندما يسمح الخادم بعمليات تسجيل دخول محدودة في اليوم.
المحلول
عادةً ما يتم تمثيل "حالة تسجيل الدخول" بواسطة ملفات تعريف الارتباط.إذن ما عليك فعله هو تخزين معلومات ملف تعريف الارتباط التي يرسلها هذا الخادم عند تسجيل الدخول، ثم إرسال ملف تعريف الارتباط هذا مع كل طلباتك اللاحقة (كما أشار إيدن بيل في رسالته، شكرًا).
أنظر أيضاً هذا السؤال:
كيفية "البقاء على قيد الحياة" باستخدام cookielib و httplib في بيثون؟
مقالة أكثر شمولاً حول كيفية تنفيذها:
http://www.voidspace.org.uk/python/articles/cookielib.shtml
أبسط الأمثلة موجودة في أسفل هذه الصفحة اليدوية:
https://docs.python.org/library/cookielib.html
يمكنك أيضًا استخدام متصفح عادي (مثل Firefox) لتسجيل الدخول يدويًا.ستتمكن بعد ذلك من حفظ ملف تعريف الارتباط من هذا المتصفح واستخدامه في الزاحف الخاص بك.لكن ملفات تعريف الارتباط هذه عادةً ما تكون صالحة لفترة محدودة فقط، لذا فهي ليست حلاً آليًا بالكامل على المدى الطويل.ومع ذلك، يمكن أن يكون مفيدًا جدًا لتنزيل المحتويات من موقع ويب مرة واحدة.
تحديث:
لقد وجدت للتو أداة أخرى مثيرة للاهتمام في سؤال حديث:
ويمكنه أيضًا إجراء تسجيل الدخول المعتمد على ملفات تعريف الارتباط:
http://doc.scrapy.org/topics/request-response.html#topics-request-response-ref-request-userlogin
والسؤال الذي ذكرته هنا:
أتمنى أن يساعدك هذا.