2013-10-07 103 views
-1

我有一些登錄asp頁面的問題。繞過asp登錄與機械化

這裏是我的代碼:

#!/usr/bin/perl -w 
use strict; 
use warnings; 
use WWW::Mechanize; 
use LWP::Debug qw(+); 
my $mech = WWW::Mechanize->new; 
$mech->agent('User-Agent=Mozilla/4.0'); 
$mech->get('http://site.net/index.asp'); 
$mech->submit_form(
    form_name => 'form', 
    fields  => { 
     xpto => '123' 
    } 
); 
my $app_content = $mech->content(); 
print "$app_content\n"; 

而這正是我從終端獲得:

<html> 
    <head> 
     <title>Anti Bot</title> 
    </head> 
    <body> 
     <h1 style="color:red;">Bots are not allowed here</h1> 
    </body> 
</html> 

回答

1

無論它檢測到您的用戶代理是怪異(最不「的User-Agent啓動=「),或者在正常提交時通過瀏覽器設置(或刪除)字段的形式爲javascript。嘗試在瀏覽器中填寫登錄表單並觀察實際發佈的內容(通過Firebug等),並更新腳本以匹配。或者,使用可以運行javascript的網頁抓取庫,如WWW::Mechanize::Firefox

我假設,當然,你有權這樣做。有些人有充分的理由不想在他們的網站上使用機器人。

+0

你說得對。它不起作用,因爲「User-Agent =」 –