簡體   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