如何使用WWW :: Mechanize访问通过下拉列表拆分的页面
问题描述:
我有从以下链接下载的基因列表。 在下拉列表中将其分成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.
答
这是很容易 - 页码是内部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);
答
$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。
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
你确定该网站没有API,所以你没有从互动网页上刮掉这些东西? – Barmar 2013-04-18 06:34:31