你可能需要:xeHentai: 紳士漫畫多線程下載器
紳士網是一個著名的18x漫畫網站。
其主站g.e-hentai.org默認對象為全年齡向,因此打開不和諧內容時會蹦出小框框。
而exhentai.org是18x向的,不會跳框框,也有更多的資源。
oschina上有人寫了用urllib2抓站的python腳本,不怎麼好用,決定用httplib2重寫一個。
而exhentai.org是木有登陸頁面的,也就是無法從exhentai.org上直接登錄紳士(里)
於是用http analyzer抓了一下包(點擊看大圖):
然後第二個請求的詳細信息為:
因此是這麼個流程:
- 當訪問exhentai時檢查有無cookie,沒有則302到http://forums.e-hentai.org/remoteapi.php?ex=xxx1,這個頁面可以獲取e-hentai上已登錄的用戶的cookie,計算一個xxx2值
- 然後上面這個頁面返回302到http://exhentai.org/?poni=xxx2
- 上面這個返回set-cookie頭
其中,xxx1和xxx2都是base64編碼過的字符串;
xxx1解碼後結果類似為“1363873263-f5bc9e17b0”,大概是時間和它的md5 with salt
xxx2解碼後結果類似為’1043216-c036cef9fe30e7f918d0b058c7bcf3e8-1363873264-fca98963a9849f0d96f59e1fc702a6887ff31a28‘,大概是 用戶id-密碼md5 with salt-時間-前面這些的md5 with salt
嘛,反正直接GET最後那個頁面這種途徑是搞不定了;而且一開始還在想,yay又是個什麼東西……
其實……解決辦法是很簡單的。
瀏覽器中的cookie是有域限制的,(也因此exhentai才要這麼麻煩地來回302)。
然後哥就試了下直接把e-hentai的cookie用到exhentai上會怎麼樣
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
logindata={ 'ipb_login_password':'*', 'ipb_login_submit':'Login!', 'ipb_login_username':'*'} rrange=lambda a,b,c=1: str(c==1 and random.randrange(a,b) or float(random.randrange(a*c,b*c))/c) ua='Mozilla/'+rrange(4,7,10)+'.0 (Windows NT '+rrange(5,7)+'.'+rrange(0,3)+') AppleWebKit/'+rrange(535,538,10)+\ ' (KHTML, like Gecko) Chrome/'+rrange(21,27,10)+'.'+rrange(0,9999,10)+' Safari/'+rrange(535,538,10) headers = {'Content-Type':'application/x-www-form-urlencoded',\ 'User-Agent':ua}#沒有content-type無法POST登錄 resp, content = httplib2.Http().request(loginurl, method='POST', headers=headers,body=urllib.urlencode(logindata)) coo=resp['set-cookie'] cooid=re.findall('ipb_member_id=(.*?);',coo)[0] coopw=re.findall('ipb_pass_hash=(.*?);',coo)[0] print cooid,coopw headers = {'Cookie': 'ipb_member_id='+cooid+';ipb_pass_hash='+coopw\ ,'User-Agent':ua} resp, content = httplib2.Http().request(exurl, method='GET', headers=headers) #req=urllib2.Request(exurl,headers=headers) #content=urllib2.urlopen(req).read() print len(content) print re.findall('.+son',content) |
然後我非常神奇地看到了下面的輸出
1 2 3 |
1043221 c036cef9fe91e7f918d0b058c7bcf3e8 15850 ['<title>[Crimson',…… |
擦……竟然正常返回了……看來yay是果然用來坑爹的……
看來不用CookieJar是有好處的=。=cookie這種東西果然還是自己動手豐衣足食啊
嗯這樣一來所有難點都解決了,嗯~
常用密碼暴露了?
沒關係,這個是自動填表專用密碼ww
已隱藏-v-
.exhentai.org TRUE / FALSE 0 ipb_member_id ******.exhentai.org TRUE / FALSE 0 ipb_pass_hash ******啥也不懂的小白,膜拜站長~~現在只能用這種形式火狐登錄中……
嗯差不多是一回事
yay是直接砍掉的…里站是檢查到yay就打出去
啊哈哈哈soga
竟然在QAQ
哦草你竟然也在OvO
/w