use LWP::Simple;
use HTML::Parse;
use HTML::Element;
$url ="http://靜態網頁";
$html = get($url);
$parsed_html = parse_html($html);
for (@{ $parsed_html->extract_links() })
{
$link = $_->[0];
print "$link\n";
}
若url 換成動態網頁
ex: http://www.softking.com.tw/soft/download.asp?fid3=23516
這個時候就沒有效果了
請IT幫幫忙 !
謝謝
#use LWP::Simple;
use HTML::Parse;
use HTML::Element;
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$url ="http://www.softking.com.tw/soft/download.asp?fid3=23516";
$req = HTTP::Request->new(GET => $url);
$req->header(Cookie => 'download=download');
#$html = get($url);
$html = $ua->request($req);
#print $html->content, "\n";
$parsed_html = parse_html($html->content);
for (@{ $parsed_html->extract_links() })
{
$link = $_->[0];
print "$link\n";
}
就可以做到想要的結果了。
<SCRIPT LANGUAGE = "JavaScript">
<!--
{
alert("■ 網頁提示 ■\n\n◆您瀏覽器的功能 Cookies 未開啟,或您不可直接由此進入網頁\n\n◆將帶您回到該軟體的說明網頁,您再進入此網頁\n\n◆若您再進入網頁仍看到此訊息,表示您的 Cookies 功能真的該打開了");
window.parent.location.href="/soft/clickcount.asp?fid3=23516";
}
//-->
</Script>
parse_html 是否有能力抓出 /soft/clickcount.asp?fid3=23516 就很難說了
這是 parser 程式寫的好壞和功力的問題
Teleport Pro 1.56 有能力剖析出該網址
wget 1.5.3.1 (免費軟體) 無能 parser 出該網址於 2009-05-27 18:57:20 補充
WGET for Windows (win32) - current version: 1.11.4
http://users.ugent.be/~bpuype/wget/
測試 mirror抓十層
wget -m --level=10 http://www.softking.com.tw/soft/download.asp?fid3=23516
只能抓到 download.asp@fid3=23516 檔案而已於 2009-05-28 08:32:13 補充
參考資料:http://snippets.dzone.com/posts/show/3937
[-隱藏]
回應 powerop:
1
pcboy 說:
實驗不對,發問者是說下面網址無效果
http://www.softking.com.tw/soft/download.asp?fid3=23516
結果實驗卻去直接測試它剖析不出來的網址
/soft/clickcount.asp?fid3=23516
2009-05-28 08:18:26
2
pcboy 說:
修正網址,測試 mirror抓十層
測試(a)
wget -m --level=10 --cookies=on --keep-session-cookies --save-cookies=cookie.txt http://www.softking.com.tw/soft/download.asp?fid3=23516
測試(b)
wget -m --level=10 --referer=http://www.softking.com.tw/soft/download.asp?fid3=23516 --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt http://www.softking.com.tw/soft/download.asp?fid3=2351
只能抓到 download.asp@fid3=23516 檔案而已,表示無法從 download.asp?fid3=23516 中剖析出 clickcount.asp?fid3=23516" 繼續抓下去
2009-05-28 08:34:54
3
lalelee 說:
謝謝您的費心實驗,我跟您一樣唯二的兩個程式語言工具就是sh and perl ,呵呵~
其實我的QBQ是這樣的,我在玩LWP::SIMPLE這個Package
我想試著寫出一個程式是類似wget可以抓取某網頁上所有的檔案,LWP裡面的getstore()已經可以將link存檔了,所以我只要能將網頁上的link通通parse出來就好了,只是沒想到會碰到http refer跟cookies的保護,您提供的方法可以讓我將下載的網頁抓出來,我做個實驗應該可以用RE將所有http link列出來
謝謝 保持聯絡
msn: lale.lee@msa.hinet.net
2009-05-28 10:48:01
4
lalelee 說:
$req->header(Cookie => 'download=download');
這段不太了解,請問為何知道Cookie 該設'download=download' ??
謝謝
2009-05-28 22:10:42
5
twtw 說:
參閱 http://ithelp.ithome.com.tw/question/10021692?tab=opinion&oid=85801#85801
當清空 softking cookie後,點 download.asp 多兩個值,無效;而再點 clickcount.asp 又多了兩個值,才有效;就試這兩個值之中,哪一個有效,就找到了。
2009-05-28 22:56:17
回應 :
請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數
廠商來幫忙
邦友收藏動態
- 5 本超優免費的自學 Linux 電子書 (scottchen)
- 常用網路管理工具 Getif (Get Interfaces)教學 (kaiin323)
- 6款Windows平臺免費備份工具 (tomtom123)
- 關於Cisco、linux、MySQL、Oracle、unix一些命令手冊 (fran633)
- 穩定的感覺會咬人 (heero1219248)
- 化繁為簡的工作拆解手法 (brgodman)
- 關於CCNA一些自我學習資料大全~! (51pass)
- 系統分析師必須思考的8個問題 (arnolin)
- 10 個不可或缺的 Linux/Unix 指令速查表 (scottchen)
- 用群組原則輕鬆管理使用者電腦 (raytracy)
安裝「收藏快捷鍵」,可以讓邦友直接透過Google工具列上的按扭,快速收藏站內、站外的網頁。
相關問答
- (msn機器人)3分鐘學會使用程式發送msn訊息, Perl篇(四)
- [好用的 Script] 老工具 Perl, AWK, SED的還不錯的資源
- 誰有電子書 : Win32 Perl Scripting The Administrator Handbook
- [RoR]為何Linux -> Perl -> Ruby on Rails?
- USERMIN問題
- [求教] 如何用perl 比對檔案內容?
- [求教]如何在windows 2003 列舉出所有子目錄權限 (安全性) ??
- [Ruby & Rails] Practical Ruby for System Administration
- shell script 裡如何使用正規表示法比對字串 ?
- [Regex] 使用正規化表示法的工具 - grep
- 製作 archlinux 套件的簡單摘要
- Fedora5底下安裝MailScanner的問題!
- Ubuntu Linux學習之旅(八)使用webmin來管理Ubuntu Linux Server
- 有關 JavaMEWireless Toolkit ( WTK)的問題
- 可以免費使用、開放原始碼的Flash圖表元件
- 手動安裝 Webmin 1.420 的方法
- 日本Ruby會長高橋征義談程式開發人員的Type(勤勉之人、輕量之人)
- [想問就問] 尋找一本好書,請介紹..
- [Ruby & Rails] Ruby CookBook







