你可能需要: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