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 那兩行(當然,要改網址)


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 是什麼,就先寫到這邊囉。

歡迎發問,歡迎指正 :)


  • ystuan 發表於樂多回應(2)引用(0)自由軟體-win32編輯本文
    樂多分類:網路/3C │昨日人次:1 │累計人次:672
    Ads by Roodo! 

    引用URL

    http://cgi.blog.roodo.com/trackback/9082965

    回應文章
    我就是提問的原PO,謝謝您的費心實驗,我跟您一樣唯二的兩個程式語言工具就是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
    | 檢舉 | Posted by Tiger at May 28,2009 10:44
    Tiger,

    哪裡哪裡, iT邦 那邊大家的回應都很精彩,我只是拋磚引玉罷了 :D
    | 檢舉 | Posted by PowerOp at May 31,2009 00:06