如何使用Perl的WWW :: Mechanize获取框架源代码?

问题描述:

使用WWW :: Mechanize :: Firefox,我可以得到我访问过的页面的源代码。但是,如果页面包含框架,我会得到框架标记,而不是加载页面的实际来源。机械化::框架似乎是我正在寻找。有没有办法一起使用它们?如何使用Perl的WWW :: Mechanize获取框架源代码?

这可能是因为您没有加载帧内容。

$mech->follow_link(tag => "frame"); # open first frame in document 
my $src = $mech->content; 
+0

带有Expect元素的Firebug将在JavaScript呈现所有内容后显示页面的源代码,并将源代码从框架和iframe物理放置到框架或iframe出现的主页面的源代码中。这就是我期待得到的。我希望能够传递URL列表,然后让WWW :: Mechanize :: Firefox加载页面,完成所有JavaScript,然后返回最终的呈现源代码。看起来这是不可能的。 出于某种原因,当我执行follow_link时,它会返回到同一页面。但是,在第一次加载时,并不是所有的js都完成了。 – SJaguar13 2010-02-10 05:00:12

为了获得在帧HTML源代码,只是得到该帧通过->selector()->xpath()然后用$frame->{innerHTML}