سؤال

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

هل كانت مفيدة؟

المحلول

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

أنظر أيضاً هذا السؤال:

كيفية "البقاء على قيد الحياة" باستخدام cookielib و httplib في بيثون؟

مقالة أكثر شمولاً حول كيفية تنفيذها:

http://www.voidspace.org.uk/python/articles/cookielib.shtml

أبسط الأمثلة موجودة في أسفل هذه الصفحة اليدوية:

https://docs.python.org/library/cookielib.html

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

تحديث:

لقد وجدت للتو أداة أخرى مثيرة للاهتمام في سؤال حديث:

http://www.scrapy.org

ويمكنه أيضًا إجراء تسجيل الدخول المعتمد على ملفات تعريف الارتباط:

http://doc.scrapy.org/topics/request-response.html#topics-request-response-ref-request-userlogin

والسؤال الذي ذكرته هنا:

قم بحذف اسم المجال للعنكبوت

أتمنى أن يساعدك هذا.

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