2014-02-10 72 views
1

我的perl程序讀取(通過get(URL))網頁並處理數據。使用AngularJS讀取和處理HTML

這工作得很好,但最近我得到了AngularJS的網頁。

這意味着get(URL)不會傳遞完整的內容,因爲AngularJS代碼會更改瀏覽器中傳遞的html內容。

有沒有辦法獲得完整的內容。 F.i.通過發送代碼到瀏覽器模塊?

感謝, W. Curth

+1

雖然理論上你可以嘗試解析index.html並下載腳本資源,然後在Phantom.js或類似的東西中運行它,但我認爲在實踐中這將是相當多的工作,並且相當困難自動化。 – ivarni

+0

觀看JQuery Mobile頁面,因爲您將面臨類似的問題,因爲JQM會將最初的HTML頁面作爲模板進行構建。 – mccainz

回答

1

你可以使用WWW:Mechanize::Firefox得到呈現的頁面。

use WWW::Mechanize::Firefox; 
    my $mech = WWW::Mechanize::Firefox->new(); 
    $mech->get($url, ':content_file' => $tempfile); 
    print $mech->content(format => 'html'); 

如果它不工作,你可以執行自定義JS代碼或處理DOM樹。