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

 

你可能感兴趣的:(python)