python偷菜

#! /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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值