zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    设计模式与23种设计模式的简单介绍
    一文读懂C++ Vector在算法竞赛中的常见用法
    一文读懂C++ String类在算法竞赛中的常见用法
    GO语言的单元测试与性能测试
    变量提升和函数提升及二者优先级
    闭包
    读《你不知道的JavaScript 中》-异步【3】Promise
    js数组方法-改变原数组和不改变原数组
    读《你不知道的JavaScript 中》-异步【2】回调
    组合类算法问题
  • 原文地址:https://www.cnblogs.com/l137/p/3405172.html
Copyright © 2011-2022 走看看