卡饭论坛茶舍抢沙发第2版,茶舍沙发,[Python]代码#-


[Python]代码

#-*-coding:utf-8-*-from time import clock as nowfrom BeautifulSoup import  *from xml.dom.minidom import parse, parseStringfrom Queue import Queueimport cookielib, urllib2,urllibimport os,sys,re,time,threading,getpassimport webbrowser#此list,记录回复数为0的,间隔时间到,从这找一下,有的话就不再次打开帖子了postList=[]#登陆和登陆提交kf_loginSubmitUrl='http://bbs.kafan.cn/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yess'class Discuz:    def __init__(self,uid,pwd,**param):        self.username = uid        self.password = pwd        self.para = param        self.regex = {            'loginreg':'<input\s*type="hidden"\s*name="formhash"\s*value="([\w\W]+?)"\s*\/>',            'postreg':'<input\s*type="hidden"\s*name="formhash"\s*id="formhash"\s*value="([\w\W]+?)"\s*\/>'        }            self.opener = None            self.request = None            self.islogin = False            self.__login()    def __login(self):            print 'start login......'            #proxy = '127.0.0.1:5865'            cookiejar = cookielib.CookieJar()            #无代理就用下面的            #self.opener = urlli2.build_opener(urllib2.ProxyHandler({'http':proxy}) ,urllib2.HTTPCookieProcessor(cookiejar))            self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))            values = {'username':self.username,'password':self.password,'quickforward':'yes','handlekey':'ls'}            data = urllib.urlencode(values)            self.request = urllib2.Request(self.para['loginsubmiturl'], data)            rq = self.opener.open(self.request)            data=rq.read()            if '欢迎您回来' in data:                print 'login success......'                self.islogin = True                else:                    print "login failed"    def LoadNew(self):        self.request = urllib2.Request('http://bbs.kafan.cn/forum-4-1.html')        rq = self.opener.open(self.request)        data = rq.read()        #正常非固顶主题        for i in re.finditer(r'<tbody id="normalthread_.+?</tbody>' ,data,re.S ):            content=i.group()            #帖子id            postId=content[24:31]            #回复数            for j in re.finditer(r'class="xi2">.+?</a>' ,content,re.S ):                 replyNum=j.group()[12:-4]                replyNum=int(replyNum)            #标题            for j in re.finditer(r'class="xst" >.+?</a>' ,content,re.S ):                 title= j.group()[13:-4]            #回复人            replyId=re.compile(r' c="1">.+?</a>').search(content).group()[7:-4]            if postList.count(postId)==0 and replyNum==0 and replyId!="zhangthe9":                print title                postList.append(postId)                url="http://bbs.kafan.cn/thread-"+postId+"-1-1.html"                webbrowser.open(url)if __name__=='__main__':    name = "zhangthe9"    password =getpass.getpass()    dz = Discuz(name,password,    loginsubmiturl=kf_loginSubmitUrl,    sleep='1'    )    while True:        dz.LoadNew()        time.sleep(3)

评论关闭