2013-04-18 57 views
0

我有從以下鏈接下載的基因列表。 在下拉列表中將其分成60個頁面的問題。如何使用WWW :: Mechanize訪問通過下拉列表拆分的頁面

http://diana.cslab.ece.ntua.gr/micro-CDS/index.php?r=search/results_mature&mir=hsa-miR-3131&kwd=MIMAT0014996 

我該如何讓WWW::Mechanize訪問所有頁面中的所有基因?

這是當前的代碼,我有:

use WWW::Mechanize; 
use strict; 
use warnings; 

my $url = "http://diana.cslab.ece.ntua.gr/micro-CDS/index.php?r=search/results_mature&mir=hsa-miR-3131&kwd=MIMAT0014996"; 

my $mech = WWW::Mechanize->new(); 
$mech->agent_alias("Windows IE 6"); 

$mech->get($url); 
#only access the first page. 
+0

WWW :: Mechanize不會做Javascript。見http://search.cpan.org/~jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize/FAQ.pod#JavaScript – Barmar 2013-04-18 06:33:45

+0

你確定該網站沒有API,所以你沒有從互動網頁上刮掉這些東西? – Barmar 2013-04-18 06:34:31

回答

1

頁下拉使用Javascript實現。你不能用Mechanize做到這一點,因爲它沒有實現Javascript。見FAQ

1

這是很容易 - 頁碼是內部URL(這是頁#11):

my $page_number = 11; 
$mech->get("http://diana.cslab.ece.ntua.gr/micro-CDS/index.php?r=search%2Finitializesearch&keywords=MIMAT0014996&thr=0.41&kegg=&page=" . $page_number); 
1
$pages = 60; 
for($i=1;$pages<=60;$i++){ 
    $url = "http://diana.cslab.ece.ntua.gr/micro-CDS/index.php?r=search%2Finitializesearch&keywords=MIMAT0014996&thr=0.41&kegg=&page=$i" 
    $mech->get($url); 
} 

這應該這樣做。您只需遍歷60個頁面,每次修改URL。