Bu beni delirtiyor. Temel olarak, kullanıcı adımı ve parolamı kodladığımda, hiçbir sorunla karşılaşmam. Ancak, bu programı başkalarıyla paylaşmak istediğimden, kullanıcı adını ve şifresini girmesini istemek istiyorum. (Program bizim ders sitesine giriş ve ders çalışma bilgi her indirmek gerekiyordu - konferanslar, hw, vs)Web Sitesi Giriş Perl ve Mechanize ile oturum aç
Bu kod çalışır:
use WWW::Mechanize;
use LWP;
my $username = 'user';
my $password = 'pass';
my $mech = WWW::Mechanize->new();
$mech -> cookie_jar(HTTP::Cookies->new());
$mech -> get('log-in url');
$mech -> form_name('theform');
$mech -> field ('username' => $username);
$mech -> field ('password' => $password);
$mech -> click ('log in');
print $mech-> content();
ancak, denemek ve kullanıcı istemi zaman giriş bilgilerini girmek için şimdi çalışır. Baskı içerik log-in sayfanın html değil Aşağıdaki sayfa (kurslar sayfa için söz konusu kullanıcı) onlar aslında aynı şey olduğundan
use LWP;
use WWW::Mechanize;
my $login_url = 'log-in url';
print "\nUser name: ";
my $username = <>;
print "Password: ";
my $password = <>;
my $mech = WWW::Mechanize->new();
$mech -> cookie_jar(HTTP::Cookies->new());
$mech -> get($login_url);
$mech -> form_name('theform');
$mech -> field ('username' => $username);
$mech -> field ('password' => $password);
$mech -> click ('log in');
print $mech-> content();
bu gerçekten hiç mantıklı döndürür. Hatta isteminde/kullanıcı adı/parola yazdım ve hala hiçbir boşuna ..... (Ayrıca bir web sitesi ve oturum açma bilgisi olmadan kontrol etmek çok kolay olmayacağını fark ediyorum, bu konuda üzgünüm)
Kodunuzda "LWP" ve "$ mech -> cookie_jar (HTTP :: Cookies -> new());' i kullanmanız gerekmez; Otomatik olarak çerezlerle çalışır. – gangabass