用Python获取KIDSFC的红包信息之全自动本地版
2009 3 8 04:33 PM 2214次查看
需要用到ClientCookie这个模块,自己去下载吧~
有时候会遇到无法获取cookie的错误,需要用IE登录下论坛,再关闭IE。
稍微修改下就能用Firefox的cookie,不过我不常用Firefox,所以就只做了IE版本。
此外,Windows 9x的cookie需要提供用户名,我也没加。
需要修改上述2点的话,请按ClientCookie文档来改。
# -*- coding: gbk -*-
import ClientCookie
import sched
import time
s = sched.scheduler(time.time, time.sleep)
url = 'http://bbs.kidfanschannel.net/discuz/plugin.php?identifier=get_money&module=money&action=money_get&hid=2'
cj = ClientCookie.MSIECookieJar(delayload=True)
cj.load_from_registry()
opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cj))
ClientCookie.install_opener(opener)
def main():
global url
res = ClientCookie.urlopen(url)
html = res.read()
res.close()
print time.strftime('%Y-%m-%d %X :', time.localtime(time.time())),
if html:
content = unicode(html, 'gbk') # 不转成unicode就无法用find查找unicode
i = content.find(u'还有') # '还有'后面那个数字就是红包数目
if i < 0:
print '无法获取cookie,请确保IE能直接登录论坛,并关闭IE!'
exit()
elif content[i+2] != '0':
print '有红包。',
i = html.find('formhash=')
formhash = html[i:i+17] # formhash信息
data = formhash + '&hid=2&hsubject=&money_get=%C1%EC%C8%A1%B8%C3%BA%EC%B0%FC'
res = ClientCookie.urlopen(url[:-6], data) # 不需要'&hid=2'
html = res.read()
content = unicode(html, 'gbk')
i = content.find(u'领取了')
if i < 0:
print '无法领取,可能是你今天的红包已经领过了。'
else:
money = content[i+3:i+5].isdigit() and content[i+3:i+5] or content[i+3:i+4]
print u'领取了%s金币。' % money
exit()
else:
print '没有红包。'
else:
print '连接失败,请检查网络连接!'
s.enter(60, 1, main, ()) # 每60秒查询一次
s.run()
if __name__ == "__main__":
main()
感觉ClientCookie这个模块绝对是个危险的东西。似乎还没人做论坛的自动打劫机器人,我就不掺合了~
0条评论 你不来一发么↓