写点python吧,python其实是个很好用的工具,作为浇水语言,跟其他语言联系也很紧密,想用什么包直接import,导入ctypes调用底层函数库,导入web相关的包可以轻松写爬虫,今天我们写的跟web相关,程序员无所不能,我们创造个小人,这个小人每天定点给我们签到,(这个写出来后还得借助crontab稍后给大家献上C语言版的daemon签到,写C语言就没urllib包了,都是socket,或者说一切皆文件!)
俩文件bbs_login.py,bbs_sign.py,前者获取cookie,保存成本地文件后者借助cookie文件签到(就一post请求 )
1 #! /usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import cookielib 5 import urllib2 6 import urllib 7 import os 8 9 url = 'http://xxx.xxx.com/asd' #一定是你登入提交的那个url 10 11 ckjar = cookielib.MozillaCookieJar('cookie.txt') 12 #ckjar = cookielib.CookieJar() 13 data = {'password':'我是密码','username':'我是用户名'} 14 15 postData = urllib.urlencode(data) 16 17 req = urllib2.Request(url,postData) 18 #换成你的ua-我们这后台验证登入成功后会把ua,username作为因子DES加密后种到cookie里 19 req.add_header('User-Agent','Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36') 20 21 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar)) 22 urllib2.install_opener(opener) 23 24 f =opener.open(req) 25 26 htm = f.read() 27 print htm 28 29 f.close() 30 31 ckjar.save(ignore_discard=True, ignore_expires=True)
运行成功后会在当前目录的得到你的cookie.txt文件,然后我就拿这个cookie.txt文件认证了,其实这节可以当作一次XSS随笔:),这个cookie文件是Netscape/Mozilla cookie文件格式,ok,现在来看bbs_sign.py
1 #!/usr/bin/env python 2 #-*- coding=utf-8 -*- 3 #使用已有的cookie访问网站 4 5 import cookielib 6 import urllib2 7 import os 8 9 ckjar = cookielib.MozillaCookieJar() 10 ckjar.load('/home/liet/code/python/study/web/cookie.txt') 11 12 url = 'http://xxx.xxx.com/plugin.php?identifier=dps_sign&module=sign&operation=qiandao&infloat=1&inajax=1' 13 data = 'qdxq=kx&qdmode=1&todaysay=love+is+beautiful.so+beautiful&fastreply=1' 14 req = urllib2.Request(url, data) 15 16 req.add_header('User-Agent','Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36') 17 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar)) 18 19 f = opener.open(req) 20 htm = f.read() 21 print htm 22 f.close()
ok,单独运行会看到签到成功的返回。。。。剩下我们把bbs_sign.py加入到crontab里,每天9点吧。。签到信息可以到sign.log里查
#每天签个到 by liet 0 9 * * * /usr/bin/python /root/liet/python/bbs_sign.py >> /root/liet/python/sign.log 2>&1