May 28,2009 00:35
會抓老鼠的就是好貓 之 用 Wget.exe 1.11.4 下載用 referer 跟 cookie 把關保護的網頁
剛才看到 iT邦幫忙 有人問了 [求教] 用Perl 抓取網頁Link 的一個疑問?,其實這個問題,在 MS 平台我大概可以想到四種跨平台又不用錢的自由軟體可能有解:
Perl:汗顏,以前工作還能寫個幾百行的 Perl (號稱是本人唯二的程式語言工具)(另一個是 shell script),現在一下要我拿 Perl 去抓網頁, parse 內容,我熊熊生不出來 XD
cURL:記得有用過一兩次,例如抄 麻將 的這篇 A loop to wget files (他同時列出 cURL 跟 Wget 的作法) (找到了,當時大家在BBS上的討論:[問題]問一個wget的指令?)
HTTrack Website Copier:砍站軟體,以前網路很慢的年代才會想砍站慢慢看,好久沒用了 XD
======以上是廢話一堆======
Wget:剛才用 Wget.exe 1.11.4 試出來了。用那位網友舉的例子,也就是網站要 cookie ,要先連到 URL1 再連 URL2 (而且連 URL2 的時候要把 URL1 當作 HTTP referrer)
我把從WGET for Windows (win32)下載回來的 1.11.4 版放在 C:\> 目錄下,然後開個命令列,照抄 using wget to download content protected by referer and cookies 那兩行(當然,要改網址)
收工。
不曉得原 po 的 QBQ 是什麼,就先寫到這邊囉。
歡迎發問,歡迎指正 :)
Perl:汗顏,以前工作還能寫個幾百行的 Perl (號稱是本人唯二的程式語言工具)(另一個是 shell script),現在一下要我拿 Perl 去抓網頁, parse 內容,我熊熊生不出來 XD
cURL:記得有用過一兩次,例如抄 麻將 的這篇 A loop to wget files (他同時列出 cURL 跟 Wget 的作法) (找到了,當時大家在BBS上的討論:[問題]問一個wget的指令?)
HTTrack Website Copier:砍站軟體,以前網路很慢的年代才會想砍站慢慢看,好久沒用了 XD
======以上是廢話一堆======
Wget:剛才用 Wget.exe 1.11.4 試出來了。用那位網友舉的例子,也就是網站要 cookie ,要先連到 URL1 再連 URL2 (而且連 URL2 的時候要把 URL1 當作 HTTP referrer)
我把從WGET for Windows (win32)下載回來的 1.11.4 版放在 C:\> 目錄下,然後開個命令列,照抄 using wget to download content protected by referer and cookies 那兩行(當然,要改網址)
C:\>wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt http://www.softking.com.tw/soft/clickcount.asp?fid3=23516
--2009-05-28 00:20:26-- http://www.softking.com.tw/soft/clickcount.asp?fid3=23516
Resolving www.softking.com.tw... 210.68.122.112, 210.68.122.111
Connecting to www.softking.com.tw|210.68.122.112|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41078 (40K) [text/html]
Saving to: `clickcount.asp@fid3=23516'
100%[======================================>] 41,078 --.-K/s in 0.001s
2009-05-28 00:20:31 (34.8 MB/s) - `clickcount.asp@fid3=23516' saved [41078/41078]
C:\>wget --referer=http://www.softking.com.tw/soft/clickcount.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=23516
--2009-05-28 00:24:48-- http://www.softking.com.tw/soft/download.asp?fid3=23516
Resolving www.softking.com.tw... 210.68.122.112, 210.68.122.111
Connecting to www.softking.com.tw|210.68.122.112|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 38372 (37K) [text/html]
Saving to: `download.asp@fid3=23516'
100%[======================================>] 38,372 --.-K/s in 0.001s
2009-05-28 00:24:52 (38.9 MB/s) - `download.asp@fid3=23516' saved [38372/38372]
C:\>
收工。
不曉得原 po 的 QBQ 是什麼,就先寫到這邊囉。
歡迎發問,歡迎指正 :)
引用URL
http://cgi.blog.roodo.com/trackback/9082965
回應文章 
其實我的QBQ是這樣的,我在玩LWP::SIMPLE這個Package
我想試著寫出一個程式是類似wget可以抓取某網頁上所有的檔案,LWP裡面的getstore()已經可以將link存檔了,所以我只要能將網頁上的link通通parse出來就好了,只是沒想到會碰到http refer跟cookies的保護,您提供的方法可以讓我將下載的網頁抓出來,我做個實驗應該可以用RE將所有http link列出來
謝謝您~ 保持聯絡
msn: lale.lee@msa.hinet.net
