vlei 发表于 2017-4-24 09:14:59

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').getElementsByTagName('div')   
    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').getElementsByTagName('div')   
    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=   
      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=   
      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)
页: [1]
查看完整版本: python偷菜