سؤال

وأود للدخول إلى منتديات جزء من خادم المجتمع (على سبيل المثال <لأ href = "http://forums.timesnapper.com/login.aspx؟ReturnUrl=/forums/default.aspx" يختلط = " noreferrer نوفولو "> http://forums.timesnapper.com/login.aspx؟ReturnUrl=/forums/default.aspx ) ومن ثم تحميل صفحة معينة وإجراء التعابير المنطقية (لمعرفة ما إذا كان هناك أي وظيفة الانتظار لالاعتدال). إذا كان هناك، أود أن إرسال بريد إلكتروني.

وأود أن القيام بذلك من خادم لينكس.

وحاليا أنا أعرف كيف لتحميل الصفحة (باستخدام مثل مجلد مشترك) ولكن لديها مشكلة في تسجيل الدخول في. أي فكرة لامعة كيف يعمل؟

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

المحلول

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

إدارة شكل مخفي الحقل __viewstate وبعد أن دعم عند تقديم تفاصيل تسجيل الدخول.

وبمجرد الحصول على الماضي الذي انا التخمين يمكنك الرجوع إلى صفحة معينة في السؤال فقط باستخدام URL المطلق ولكن كنت بحاجة للتعامل مع ASP.NET نماذج ملف تعريف الارتباط المصادقة والتي ترسل كجزء من طلب GET.

نصائح أخرى

قد يكون لديك أفضل حظا مع السيلينيوم أو رؤية هذا السؤال لمزيد من الاقتراحات:

السيناريو للكلية من الدرجة التسجيل

وشخصيا، كنت اكتبها في بيرل، وذلك باستخدام WWW :: يمكنن وتفعل شيئا مثل:


my $login_url = 'login url here';
my $username = 'username';
my $password = 'password';
my $mech = new WWW::Mechanize;
$mech->get($login_url)
    or die "Failed to fetch login page";
$mech->set_visible($username, $password)
    or die "Failed to find fields to complete";
$mech->submit
    or die "Failed to submit form";

if ($mech->content() =~ /posts awaiting moderation/i) {
    # Do something here
}

وليس لدي فكرة عما إذا كان ما سبق ستعمل، وليس لدي تفاصيل تسجيل الدخول إلى خادم المجتمع (أيا كان هذا هو) لاختباره ضد، ولكن يجب أن تعطيك شيئا هل يمكن العمل من السهل بما فيه الكفاية، و يدل على قوة WWW :: يمكنن.

ويمكنك أن تفعل ذلك مع كل مجلد مشترك. تحتاج إلى تقديم النموذج باستخدام وظيفة وتحتاج إلى تخزين ملفات تعريف الارتباط. الاشياء ذات الصلة من الصفحة رجل WGET:

--post-data=string
--post-file=file

Use POST as the method for all HTTP requests and send the specified data in the request body.
"--post-data" sends string as data, whereas "--post-file" sends the contents of file.  Other than
that, they work in exactly the same way.

This example shows how to log to a server using POST and then proceed to download the desired pages,
presumably only accessible to authorized users:

       # Log in to the server.  This can be done only once.
       wget --save-cookies cookies.txt \
            --post-data 'user=foo&password=bar' \
            http://server.com/auth.php

       # Now grab the page or pages we care about.
       wget --load-cookies cookies.txt \
            -p http://server.com/interesting/article.php
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top