Re: [範例] 用WebChuan抓取無名相簿的相片

看板Python作者 (http://punk.tw/ )時間15年前 (2008/10/23 17:05), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串2/2 (看更多)
: → StubbornLin:看來不只有我一個人遇到yahoo 999 = = 10/23 00:10 : → StubbornLin:我沒預料到居然有那種鬼機制 XD 10/23 00:10 : → StubbornLin:抓了一陣子居然999 我沒研究他判斷999的方式 10/23 00:10 : → StubbornLin:還有它到底是禁止了什麼 我猜應該是ip 10/23 00:11 : → StubbornLin:我重新播號換個ip就好了 10/23 00:11 : → StubbornLin:我覺得應該是抓圖的方式太密集 = = 10/23 00:11 : → StubbornLin:我想... 如果User-Agent用亂數決定 10/23 00:12 : → StubbornLin:不知道它會不會認定是不同電腦 10/23 00:12 : → StubbornLin:但如果只認ip 大概就只能延長抓的間格吧? 10/23 00:12 對不起...雖然這裡是python板,但以下文章只有ruby and php code...orz 請見諒 換proxy是個方法、換IP也是方法,不過我上次在yahoo open hack day惡搞 無名小站2.0的時候有發現一些關鍵,至少那個晚上我爬了2,000+ 個網頁沒被擋:p 1. header要記得送 cookie 2. 換一本相簿還是換一個user的時候會收到response header送 set-cookie 回來 記得把裏面提供的資訊換上去跟著送出去 BX=xxxxxxx ; PHPSESSID=xxxxxxx 我是用ruby寫的,有一段程式如下 unless resp['Set-cookie'].blank? @cookie = "#{cookie.scan(/BX=.+s=\w{1,3};/)[0]} #{cookie.scan(/(PHPSESSID=\w+;)/)[0]} lang=zh-tw; #{resp['Set-cookie']}" end (當時趕時間regular expression寫得很醜.....到現在一直沒改XD) 3. request不要送太快,基本上一秒一頁應該沒問題(?) 關鍵在於儘量模擬真人的瀏覽行為 :p by the way, 要hack無名小站就是下列3點 1. HTML是最難破的,基本上就是上述模式去撈.... 可能的防護方式是擋IP, 看header & cookie 撈到html後基本上就有縮圖網址,縮圖網址跟大圖網址規則是固定的... 2. 縮圖,只要有縮圖的url就可以,等於是沒有防護 3. 大圖,基本上這些圖應該是躲在firewall或proxy後面,只查referer 隨便寫一段PHP就可以撈到圖了: <?php $p = $_GET['url']; header('Content-type: image/jpeg'); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $p); curl_setopt ($ch, CURLOPT_REFERER, "http://www.wretch.cc/album/"); curl_exec ($ch); curl_close ($ch); ?> 使用方式例如 http://localhost/img.php?url=http://f7.yahoo................... 就會return一張圖片回來..... 基本上我是滿想開一個open source project專門寫爬無名小站的程式..... 這樣會有人有興趣嗎?? -- Cyberpunk http://punk.tw/ -- 華夫人:我們一日喪命散是用七種不同的毒蟲,再加上了鶴頂紅, 提煉了七七四十九日而成的,無色無味,殺人於無影無蹤! 唐伯虎:哼!我們含笑半步癲是用蜂蜜、川貝、桔梗、加上天山雪蓮配製而成, 不需冷藏,也沒有防腐劑,除了毒性猛烈之外,味道還很好吃! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.179.98

10/23 22:11, , 1F
怎麼覺得有點賤 XD 但又覺得有點爽 XD
10/23 22:11, 1F

10/23 23:13, , 2F
酷!!
10/23 23:13, 2F

10/23 23:47, , 3F
無名會因此被爬到倒站嗎 XDDD?
10/23 23:47, 3F

10/23 23:47, , 4F
以後要輸入驗證碼才能瀏覽 XD
10/23 23:47, 4F

10/24 02:29, , 5F
這樣是無止境的戰爭 一邊努力想新的防禦 一邊努力破 (fun!)
10/24 02:29, 5F
文章代碼(AID): #1903v2tK (Python)
文章代碼(AID): #1903v2tK (Python)