繁体   English   中英

Perl用Javascript机械化

[英]Perl Mechanize with Javascript

我开始从事Perl机械化工作,并完成了一项自动化任务,但在网站中陷入了JavaScript问题。

我尝试使用其代码的网站在菜单部分之间具有基于javascript的导航(URL保持不变)。 在这里看看

到目前为止,我编写的代码为我提供了重定向到菜单的链接,如图所示。

$url="https://my.testingurl.com/nav/";
my $mech=WWW::Mechanize->new(autocheck => 1);
$mech->get($url);
$mech->form_name("LoginForm");
$mech->field('UserName','username');
$mech->field('UserPassword','password');
$mech->submit_form();
my $page=$mech->content;
if($page =~  /<meta\s+http-equiv="refresh"\s+content="\d+;\s*url=([^"+]*)"/mi)
{$url=$1 }
$mech->get($url);
print Dumper $mech->find_link(text_regex=>qr/View Results/);

这是输出。

$VAR1 = bless( [
                 '#',
                 'View Results',
                 undef,
                 'a',
                 bless( do{\(my $o = 'https://my.testingurl.com/nav/')}, 'URI::https' ),
                 {
                   'onclick' => 'PageActionGet(\'ChangePage\',\'ResultsSection\',\'\',\'\', true)',
                   'href' => '#'
                 }
               ], 'WWW::Mechanize::Link' );

现在,我不知道如何通过单击输出中显示的链接进行操作,并对导航的另一部分进行相同的操作。

请帮忙。

WWW::Mechanize不支持JavaScript。 这为您提供了两个基本选项:

  • 对JavaScript进行反向工程,使用Mechanize从中抓取所需的任何数据,然后自己触发所有HTTP交互。 在这种情况下,可能涉及提取“ ResultsSection”字符串,并将其与页面中其他位置(或可能是外部JavaScript文件)的某些数据进行匹配。
  • 切换到不支持JavaScript的其他工具(例如Selenium)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM