::

2014-12-15 9 views
0

내가 찾은 다음 코드 기계화 : 내가 뭘하려고 오전입니다::

use WWW::Mechanize; 
use WWW::Mechanize::FormFiller; 
use URI::URL; 

my @go_terms=qw/GO:0006612 GO:0045862 GO:0048545 GO:0007568 GO:0046326 GO:0051901 GO:0010524 GO:0006044 GO:0032024/; 
my $go_string=join("\n",@go_terms); 
my $agent = WWW::Mechanize->new(autocheck => 1); 
my $formfiller = WWW::Mechanize::FormFiller->new(); 
$agent->env_proxy(); 

$agent->get('http://revigo.irb.hr/'); 
$agent->form_number(1) if $agent->forms and scalar @{$agent->forms}; 
$formfiller->add_filler('goList' => Fixed => $go_string); 
$formfiller->add_filler('cutoff' => Fixed => '0.4'); 
$formfiller->add_filler('isPValue' => Fixed => 'yes'); 
$formfiller->add_filler('whatIsBetter' => Fixed => 'higher'); 
$formfiller->add_filler('goSizes' => Fixed => 0); 
$formfiller->add_filler('measure' => Fixed => 'SIMREL'); 
$formfiller->fill_form($agent->current_form); 

my $request = $agent->click("startRevigo"); 

한 번 startRevigo 클릭을, 나는 다음과 같은 URL로 이동하려는 http://revigo.irb.hr/toR.jsp?table=1 및 그것이 나에게주는 파일을 다운로드하십시오. cpan 매뉴얼을 읽는 것조차도이를 수행하는 방법에 대한 단서가 없습니다.

+0

이것은 코드 관련 문제가 아니며 서버가 다운 된 것처럼 보입니다. 파이어 폭스에서도 500 –

답변

0

테스트되지 않음 사용하십시오!

use WWW::Mechanize; 

my @go_terms=qw/GO:0006612 GO:0045862 GO:0048545 GO:0007568 GO:0046326 GO:0051901 GO:0010524 GO:0006044 GO:0032024/; 
my $go_string=join("\n",@go_terms); 

my $agent = WWW::Mechanize->new(autocheck => 1); 
$agent->env_proxy(); 

$agent->get('http://revigo.irb.hr/'); 
$agent->submit_form(
    with_fields => { 

     goList => $go_string, 
     cutoff => 0.4 
     isPValue => "yes", 
     whatIsBetter => "higher", 
     goSizes => 0, 
     measure => "SIMREL", 
    }, 
); 

$agent->get("http://revigo.irb.hr/toR.jsp?table=1"); 
$agent->save_content("your_file.r"); 
+0

'$ mech'? 그게 뭐야? – user2979409

+0

@ user2979409 죄송합니다! 고쳤다! – gangabass

+0

그러나 이것은 파일에 정보를 저장하기위한 것입니다. 내가 원하는 것은'http : //revigo.irb.hr/toR.jsp? table = 1'에 저장된 파일을 다운로드하는 것입니다.이 파일은'startRevigo'를 클릭 한 후에 만 ​​사용할 수 있습니다. – user2979409

0

나는 LWP::UserAgent 대신

require LWP::UserAgent; 

my $ua = LWP::UserAgent->new; 
$ua->timeout(10); 
$ua->env_proxy; 

my $response = $ua->get('http://revigo.irb.hr/toR.jsp?table=1'); 

if ($response->is_success) { 
    print $response->decoded_content; # I am just printing it but you can save it etc 
} 
else { 
    die $response->status_line; 
} 

http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm

+0

오류가 발생합니다. '500 internal server error at revigo.pl'이지만'startRevigo'를 클릭하면 서버가 정상적으로 인쇄됩니다. – user2979409

+0

이 컴파일은 응답이 어떻게 생깁니 까? 이 모듈들이 CPAN도 함께 설치되어 있는지 확인하십시오. –