锁定老帖子 主题:被偷无奈写个收菜外挂
精华帖 (2) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-14
无聊的时候玩玩人人农场,不知不觉等级就高了,于是乎就招偷了……作为一个玩农场的程序员,不能对此束手无策的!写个收菜的程序吧,顺便练练Python!
研究了一下人人网的wap页面,写下了如下的代码:
#! /usr/bin/env python #coding=utf-8 import urllib2,urllib from xml.dom import minidom from HTMLParser import HTMLParser LOGIN_URL='http://3g.renren.com/login.do?fx=0&autoLogin=true' def login(user, passwd): data=urllib.urlencode({ 'origURL':'/home.do', 'email':user, 'password':passwd, 'login':'\xe7\x99\xbb\xe5\xbd\x95' }) fd=urllib2.urlopen(LOGIN_URL,data) return fd.read() def getAppUrl(page): doc=minidom.parseString(page) appDiv=doc.getElementsByTagName('body')[0].getElementsByTagName('div')[3] for a in appDiv.getElementsByTagName('a'): url=a.getAttribute('href') if url and 'apps.do' in url: return url else: print '没有找到“应用”页面的链接'.decode('utf-8').encode('gbk') def getFarmUrl(page): doc=minidom.parseString(page) farmDiv=doc.getElementsByTagName('body')[0].getElementsByTagName('div')[5] for a in farmDiv.getElementsByTagName('a'): url=a.getAttribute('href') if url and 'appid=53429' in url: return url else: print '没有找到“人人农场”页面的链接'.decode('utf-8').encode('gbk') def visitUrl(url): fd=urllib2.urlopen(url) return fd.read() def harvestFarm(user, passwd): print '收获'.decode('utf-8').encode('gbk')+user+\ '的农场……'.decode('utf-8').encode('gbk') appurl=getAppUrl(login(user, passwd)) farmurl=getFarmUrl(visitUrl(appurl)) tp=TargetsParser() tp.feed(visitUrl(farmurl)) linkLists= tp.getTargets() for url in linkLists: hlp=HarvestLinkParser() hlp.feed(visitUrl(url)) if hlp.getHarvestLink(): visitUrl(hlp.getHarvestLink()) print '收工离开此农场'.decode('utf-8').encode('gbk') class TargetsParser(HTMLParser): def __init__(self): self.targets=[] HTMLParser.__init__(self) def handle_starttag(self, tag, attrs): if tag!='a': return href=[value for key,value in attrs if key=='href'] for url in href: if 'myCropAction.php' in url or 'myTreeAction.php' in url or\ 'myAnimalAction.php' in url or 'myMachineAction.php' in url: self.targets.append('http://mapp.renren.com'+url) def getTargets(self): return self.targets class HarvestLinkParser(HTMLParser): def __init__(self): self.link='' HTMLParser.__init__(self) def handle_starttag(self, tag, attrs): if tag!='a': return href=[value for key,value in attrs if key=='href'] for url in href: if 'wap,reapAllAction.php' in url: self.link='http://mapp.renren.com'+url def getHarvestLink(self): return self.link if __name__=='__main__': userList=[('email','password')] for u,p in userList: harvestFarm(u,p) 经过测试,已经可以实现收菜功能了。接下来的任务是:定时收菜、自动定时收菜、收菜时顺便偷菜……
嘿嘿,分享代码仅作为技术交流~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-15
........又一个GEA应用.....
我看到了定时二字... |
|
返回顶楼 | |
发表时间:2010-06-15
dreampuf01 写道 ........又一个GEA应用..... 我看到了定时二字... GEA是什么东东? 我昨天看了一下GAE文档,好像不支持对请求新开线程进行操作,不支持由请求触发的长时间运行的操作……好像也就没法把这外挂放GAE上运行吧~ |
|
返回顶楼 | |
发表时间:2010-06-17
楼主再写个web版,偷菜外挂吧
|
|
返回顶楼 | |
发表时间:2010-06-17
在gae上部署了web版的吧
|
|
返回顶楼 | |
发表时间:2010-06-18
呵呵,这样子还有什么乐趣可言
|
|
返回顶楼 | |
发表时间:2010-06-18
不要code
只需外挂和使用教程 |
|
返回顶楼 | |
发表时间:2010-06-18
和python不熟的,飘过,没有括号,看起来忒别扭
|
|
返回顶楼 | |
发表时间:2010-06-18
种菜就是让人偷的,哈哈
|
|
返回顶楼 | |
发表时间:2010-06-18
强人~~~~~有时也可以学习学习啊,在快乐中学习
|
|
返回顶楼 | |