2014-10-08 19 views
0

我當前的程序可以打印所有形式的名稱爲字段的網頁,我也想打印當前值。Perl:爲網頁中的所有表單字段找到值

use WWW::Mechanize; 
use LWP::UserAgent; 
my $m = WWW::Mechanize->new(); 
$m->get("http://www.rediff.com/"); 
@arr = $m->forms; 
$count = 1; 
foreach (@arr) { 
    my @inputfields = $_->param; 
    print "form $count fields are:\n"; 
    $count++; 
    foreach (@inputfields) { 
     print "$_\n"; 
    } 
    print "\n"; 
} 

輸出:

form 1 fields are: 
srchword 
src 

form 2 fields are: 
login 
passwd 
remember 
seclogin 
FormName 

預期: 我想也顯示值,比如

login : [email protected] 
+0

什麼值?該頁面上的登錄字段沒有默認值。 – Quentin 2014-10-08 06:01:27

回答

1

使用$form->value方法記錄在HTML::Form

use strict; 
use warnings; 

use WWW::Mechanize; 

my $m = WWW::Mechanize->new(); 
$m->get("http://www.rediff.com/"); 
my $count = 1; 
for my $form ($m->forms) { 
    print "form $count fields are:\n"; 
    $count++; 
    for ($form->param) { 
     printf "%s - %s\n", $_, $form->value($_); 
    } 
    print "\n"; 
} 

輸出:

form 1 fields are: 
srchword - 
src - web 

form 2 fields are: 
login - 
passwd - 
remember - 1 
seclogin - on 
FormName - existing 
+1

像你使用$ form-value($ _),將$ form-> name($ _)和$ form-> id($ _)工作。除了數值之外,我可以通過這種方式獲得所有其他信息。 – 2014-10-08 06:44:36

+1

只需閱讀['HTML :: Form'](https://metacpan.org/pod/HTML::Form)的文檔。這就是我發現如何找到價值的方式。它會做得更好,詳細描述可用的功能,然後在此處發表評論。 – Miller 2014-10-08 06:47:50

相關問題