我想通過使用網絡爬蟲保存幾個網頁。通常我更喜歡用perl的WWW::Mechanize
modul來做。然而,據我所知,我試圖抓取的網站上有很多javascript,似乎很難避免。因此,我看着下面的Perl模塊網絡爬蟲:使用Perl的MozRepl模塊處理Javascript
Firefox的MozRepl extension本身完美的作品。在理論上,我可以使用終端來瀏覽網站,就像它在開發者教程中顯示的那樣。但是,我不知道JavaScript,因此我很難正確使用模塊。
所以這裏是我要開始從源頭:Morgan Stanley
了幾個上市公司的「之下公司 - 爲2011/10/14」我想救他們各自的頁面。例如。點擊第一家上市公司(即'1-800-Flowers.com,Inc'),一個javascript函數被兩個參數調用 - >dtxt('FLWS.O','2011-10-14')
,它產生所需的新頁面。我現在喜歡在本地保存的頁面。
Perl的MozRepl
模塊我想過這樣的事情:
use strict;
use warnings;
use MozRepl;
my $repl = MozRepl->new;
$repl->setup;
$repl->execute('window.open("http://www.morganstanley.com/eqr/disclosures/webapp/coverage")');
$repl->repl_enter({ source => "content" });
$repl->execute('dtxt("FLWS.O", "2011-10-14")');
現在我想保存生成HTML頁面。
再次,我想製作的代碼應該訪問幾個公司他們的HTML網站,並簡單地保存網頁。 (這裏是例如三家公司:MMM.N,FLWS.O,SSRX.O)
- 它是正確的,我不能繞過去的頁面的JavaScript函數,因此不能使用
WWW::Mechanize
? - 以下問題1,提到的perl模塊是一個合理的方法嗎?
- 最後,如果你說前兩個問題可以被肯定,那麼如果你可以幫助我解決實際問題,那將是非常好的。例如。在上面的代碼中,丟失的重要部分是
'save'-command
。 (也許使用火狐的saveDocument
函數?)
我不知道AT&T的WSP工具。這真是一個方便的腳本。謝謝,我用它並且實際上解決了我的問題。謝謝tadmc! – mropa