الطريقة المناسبة للسيناريو لسحب صفحة بشكل دوري من موقع HTTPS

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

  •  03-10-2019
  •  | 
  •  

سؤال

أرغب في إنشاء برنامج نصي لخط الأوامر لـ Cygwin/Bash الذي يسجل الدخول إلى موقع ما ، ويتنقل إلى صفحة معينة ويقارنه بنتائج التشغيل الأخير. حتى الآن ، لقد عملت مع الوشق مثل ذلك:

----snpipped, just setting variables----
echo "# Command logfile created by Lynx 2.8.5rel.5 (29 Oct 2005)
----snipped the recorded keystrokes-------
key Right Arrow
key p
key Right Arrow
key ^U" >> $tmp1 #p, right arrow initiate the page saving

#"type" the filename inside the "where to save" dialog
for i in $(seq 0 $((${#tmp2} - 1)))
do
    echo "key ${tmp2:$i:1}" >> $tmp1
done

#hit enter and quit
echo "key ^J
key y
key q
key y
" >> $tmp1

lynx -accept_all_cookies -cmd_script=$tmp1 https://thewebpage.com/login

diff $tmp2 $oldComp
mv $tmp2 $oldComp

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

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

بديل آخر كنت أنظر إليه هو ميكانيكي مع روبي (كملاحظة - لدي 0 تجربة مع روبي).

ما هي أفضل طريقة لتحسين أو إعادة كتابة هذا؟

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

المحلول

أعتقد أن Lynx أداة رائعة لمهام أتمتة الويب البسيطة ، ولكن بالطبع لها حدودها. إذا كنت بحاجة إلى التحقق من الخطأ ، فيجب عليك استخدام إحدى الوحدات الميكانيكية لـ Perl أو Python أو Ruby (إذا كنت لا تعرف أيًا من هذه اللغات ، فقد يكون Python الأسهل للتعلم).

لجعل البرنامج النصي Lynx أكثر قوة قليلاً ، يمكنك استخدام وظيفة البحث لتحديد الروابط. في بعض الصفحات باستخدام قائمة الارتباطات (L) يمكن أن تساعد.

في النهاية ، سأضيف بعض اختبارات العقل لمعرفة ما إذا كانت الملفات التي تم تنزيلها هي حقًا تلك التي تريدها.

نصائح أخرى

استطاع wget كن مفيدًا هنا؟

إنه أداة سطر الأوامر HTTP و HTTPS و FTD. إنه برنامج مجاني (GNU). يحتوي على العديد من الخيارات مثل المصادقة والجدول الزمني (فقط قم بتنزيل ملف إذا تغير منذ آخر مرة).

http://www.gnu.org/software/wget/

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