一个论坛自动灌水机的例子,论坛灌水机例子,python初学者,刚刚
一个论坛自动灌水机的例子,论坛灌水机例子,python初学者,刚刚
python初学者,刚刚看完了《笨办法学python》的基础章节,就想试着自己做一个东西出来,算法什么的完全不懂,于是一开始就在网上翻找前辈们发的一些模块使用的例子和说明,没想到居然很容易就捣鼓出来了。因为基本上不会英文,所以看到拼音什么的请不要见怪。
#-*-coding:utf-8-*-import wx, sys, stringimport re, randomimport gui, os import urllib, urllib2, cookielib# Implementing MyFrame1class Jx3BbsMyFrame1( gui.MyFrame1 ): def __init__( self, parent ): gui.MyFrame1.__init__( self, parent ) self.timer = wx.Timer(self, 1) self.Bind(wx.EVT_TIMER, self.setTimer, self.timer) def Denglu_anniu( self, event ): name = self.m_ZhanghaoSRK.GetValue() pwd = self.m_MimaSRK.GetValue() scode = self.m_YanZhengMaSRK.GetValue() vals = {'name':name, 'pwd':pwd, 'scode':scode, 'needCode':'0'} # 如果登陆成功就将验证码图片框中显示自制的提示图片 if fbm.logForumId(urllib.urlencode(vals)): img = wx.Image('win.jpg', wx.BITMAP_TYPE_ANY).ConvertToBitmap() self.m_YanZhengMaTPK.SetBitmap(img) else: m = u""" 登陆失败,请检查账号密码或者验证码是否输入正确。 请重开程序重复登陆过程,并确保输入内容正确。 """ wx.MessageBox(m, u'错误提示', wx.OK) wx.Exit() def KaishiGuanshui( self, event ): if self.timer.IsRunning(): self.timer.Stop() self.m_GuanshuiAN.SetLabel(u'开始') else: self.timer.Start(32009) self.m_GuanshuiAN.SetLabel(u'停止') def setTimer(slef, event): # 一开始并不知道还能用choice还傻傻的直接取随机整数来切片 cycleEvents(random.choice(g_postMsg).encode('utf-8'))class App(wx.App): def OnInit(self): frame = Jx3BbsMyFrame1(None) frame.Show() return Trueclass falseBrowserModel(): def __init__(self): self.cj = cookielib.CookieJar() self.op = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj)) urllib2.install_opener(self.op) def downloadTheCodeImage(self): self.url = "https://my.xoyo.com/login/scode/small/" self.image = urllib2.urlopen(self.url).read() self.f = open("code.jpg", "wb") self.f.write(self.image) self.f.close() def logForumId(self, postdate): self.url = "https://my.xoyo.com/login/loginAction/" self.htm = urllib2.urlopen(self.url, postdate).read() self.url="http://jx3.bbs.xoyo.com/forumdisplay.php?fid=7101&page=2" self.htm = urllib2.urlopen(self.url).read() self.i = re.search(u'退出'.encode('utf-8'), self.htm) if self.i: return 1 def refreshPage(self, url): return urllib2.urlopen(url).read() # 其实我也知道这两个方法其实可以写作一个,不过为了区分还是多写一遍吧 def postmsg(self, url, msg): urllib2.urlopen(url, msg).read()def main(): fbm.downloadTheCodeImage() app = App() app.MainLoop()def extractData(regex, content, index=1): r = '0' p = re.compile(regex) m = p.search(content) if m: r = m.group(index) return rdef cycleEvents(msg): url = "http://jx3.bbs.xoyo.com/forumdisplay.php?fid=7101&page=2" page = fbm.refreshPage(url) regex = 'tid=(\\d+).*New' tid = extractData(regex, page) var_list = ["http://jx3.bbs.xoyo.com/viewthread.php?tid=", tid, "&extra=page%3D2"] url = ''.join(var_list) page = fbm.refreshPage(url) regex = 'value="(\\w{8,8})"' formhash = extractData(regex, page) varlist=["http://jx3.bbs.xoyo.com/post.php?action=reply&fid=7101&tid=", tid, "&extra=page%3D2&replysubmit=yes&infloat=yes&handlekey", "=fastpost&inajax=1&local=undefined"] url = ''.join(varlist) postdate = {'formhash':formhash, 'subject':'', 'usesig':'1', 'message':msg} fbm.postmsg(url, urllib.urlencode(postdate))# 到现在都不知道为什么直接使用global定义会出错,只有放在这里了。fbm = falseBrowserModel()g_postMsg = [u'好的我知道了,退下吧', u'太阳当空照,花儿对我笑', u'你的就是我的,我的还是我的', u'听说最近脑残片涨价了,我都买不到了', u'自己打败自己是最可悲的失败,自己战胜自己是最可贵的胜利。', u'用行动祈祷比用言语更能使上帝了解,尽管我是无神论者', u'不要问别人为你做了什么,而要问你为别人做了什么。', u'你一天的爱心可能带来别人一生的感谢。', u'人之所以有一张嘴,而有两只耳朵,原因是听的要比说的多一倍。', u'山不辞土,故能成其高;海不辞水,故能成其深! ']if __name__ == "__main__": main()#该片段来自于http://byrx.net
相关内容
- python通过wxPython打开一个音频文件并播放的代码,pyth
- Fair and Square,fairandsquare,时间:1e14(18s左
- python 多线程实例,python多线程,# _*_ coding
- hyper超运算,让计算机死了吧,hyper死了,def hyper(n,
- 使用Python写一个贪吃蛇AI,python贪吃蛇ai,不久前在网上
- 使用reportlab生成中文表格pdf,reportlabpdf,导师的一个需求
- 将n*n的矩阵顺时针旋转90°,矩阵顺时针90,def rotate(l
- python核心编程第六章题目:python代码实现:设计一个
- 经典分石头问题,经典分石头,有n个整数,将这堆数分
- Python3根据IP地址获取MAC地址,python3ip获取mac,这是一种笨
评论关闭