python的http请求应用--每日签到

  写点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