如何使用WWW :: Mechanize访问按下拉列表分割的页面

时间:2013-04-18 06:16:53

标签: javascript html perl unix mechanize

我有从以下链接下载的基因列表。 在下拉列表下分为60页的问题。

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.

3 个答案:

答案 0 :(得分:1)

页面下拉列表使用Javascript实现。您不能使用Mechanize执行此操作,因为它不实现Javascript。请参阅FAQ

答案 1 :(得分: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 );

答案 2 :(得分: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。