• 注册
当前位置:1313e > python >正文

python论坛批量_Python实现BBS自动登录并发帖

初学Python有了一段时间,寒假里又看了一些Web编程方面的知识,就写了一个实现bbs自动登录和发帖的Python脚本

由于本人学校BBS站首页使用js加载,貌似通过首页登录不大可行,然后就分析表单,发现是通过POST一些data到特定的地址,之后

获取返回的cookie。这样就好办了,废话不多说,上代码。(初学,不够 Pythonic,见谅)

#-*-coding:utf-8-*-

#lilybbs.py

#Author:Sky_Money

#Python实现自动登录BBS并发帖

importurllib,urllib2

#帐号和密码,你懂的

username=''

password=''

baseurl='http://bbs.nju.edu.cn/vd45734/bbslogin?type=2'

postdata=urllib.urlencode({

'id':username,

'pw':password,

'lasturl':''})

req=urllib2.Request(

url=baseurl,

data=postdata)

result=urllib2.urlopen(req).read()

#从返回的Content中抓取Cookie

start=result.find("('")+2

end=result.find("')")

cookie=result[start:end]

split1=cookie.find('N')

split2=cookie.find('+')

u_num=int(cookie[0:split1])

u_id=cookie[split1+1:split2]

u_key=int(cookie[split2+1:])

footkey=217872412

#下面是发帖验证

testUrl='http://bbs.nju.edu.cn/vd78013/bbssnd?board=test'

sendCookie="_U_NUM=%d;_U_UID=%s;_U_KEY=%d;FOOTKEY=%d"%(u_num+2,u_id

,u_key-2,footkey)

#发送的Headers,必须要有Cookie

sendheaders = {

'Host':'bbs.nju.edu.cn',

'Connection':'keep-alive',

'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML,like Gecko) Chrome/15.0.874.121 Safari/535.2',

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Accept-Encoding':'gzip,deflate,sdch',

'Accept-Language':'zh-CN,zh;q=0.8',

'Accept-Charset':'GBK,utf-8;q=0.7,*;q=0.3',

}

sendheaders['Cookie']=sendCookie

#发帖的data主体

body=urllib.urlencode({'title':'test',

'pid':'0',

'reid':'0',

'signature':'1',

'autocr':'on',

'text':'oh yeah'})

returnedReq=urllib2.Request(

url=testUrl,

data=body,

headers=sendheaders)

returnedResult=urllib2.urlopen(returnedReq).read()

printreturnedResult

代码一路到底,比较丑,就这样看看了

主要使用了urllib和urllib2模块。

先是登录问题,需要POST的数据可以通过FF+httpfox查看,这个比较方便。知道需要的数据之后就依样画葫芦,模拟发送即可。

其中发送的url中 /vd 后面跟的一串数字就是随机指派,这个其实可以通过随机数分配,没有特定的要求.

之后通过抓取发送得到的Cookie获取发帖‘令牌’,其中Cookie分为四部分,_U_NUM,_U_UID,_U_KEY,FOOTKEY,其中 _U_UID是用户名,_U_NUM和_U_KEY是返回的一串数值,需要注意的是,发帖是的Cookie需要将 _U_NUM值加2,_U_KEY值减2,这个比较奇怪,可能是本校bbs设置的问题。FOOTKEY貌似就是随意指派的一串数字。

以上就是自动登录并发帖的简单脚本,现在发现Python写这玩意还是挺好玩,接下来想考虑怎么登录WebQQ,这个貌似需要了解TX的QQ通讯协议了....

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录