用Python自动登录街旁并完成签到

用Python自动登录街旁并完成签到

作者: Holmesian ⁄ 时间:2011年07月01日 ⁄ 分类: Python评论:0

        之前街旁连续登录签到130多天,结果由于有一天比较忙忘记登录签到导致连续加分的内容没有了,今天稍微花了一点时间用Python实现自动登录并签到,准备挂在服务器上每天cron一下,丷丷

 

01#coding=gb2312
02import urllib2,cookielib,os,sys,urllib
03 
04class AutoloadingLogin():
05  def __init__ (self,codeurl,userdata,loginurl,validatename,codesavepath,posturl,postdata):
06    self.codeurl = codeurl
07    self.userdata = userdata
08    self.loginurl = loginurl
09    self.validatename = validatename
10    self.opener = None
11    self.codesavepath = codesavepath
12    self.postdata=postdata
13    self.posturl=posturl
14 
15  def savecode (self,content,imagetype):
16    t = imagetype.split("/")
17    h = open(("%svalidate.%s" %(self.codesavepath,t[1])),"wb")
18    h.write(content)
19    h.close()
20 
21  def request (self,url,cj=None,data=None):
22    request=urllib2.Request(url)
23    if cj!=None:
24      self.opener=urllib2.build_opener(cj)
25    if data!=None :
26      c = self.opener.open(request,urllib.urlencode(data))
27    else:
28      c = self.opener.open(request)
29    return c
30 
31  def login (self):
32    cookie=cookielib.CookieJar()
33    cj=urllib2.HTTPCookieProcessor(cookie)
34    if self.validatename != '':
35      c = self.request(self.codeurl,cj)
36      imagetype = c.headers.get('Content-Type')
37      self.savecode (c.read(),imagetype)
38      print "请输入验证码"
39      imgcode=raw_input()
40      self.userdata[self.validatename] = imgcode
41    else:
42      print "无验证码"
43    c = self.request(self.loginurl,cj,self.userdata)
44    self.postin()
45   
46  def postin (self):
47    c = self.request(self.posturl,None,self.postdata)
48    #print c.read().decode("utf-8")
49 
50def main ():
51  #验证码url,如果有的话
52  validatecodeurl = ""
53  #提交登录或注册时的表单
54  userdata = {'pwd':'justyourpasswd','user':'Holmesian@qq.com','sumbit':'登录'}
55  #验证码的表单变量,如果有的话
56  validatename = ''
57  #登录表单提交Url
58  loginurl = 'http://jiepang.com/m/login'
59  #下载的验证码路径
60  codesavepath = ''
61  #设置签到变量
62  posturl = 'http://jiepang.com/m/checkin?sid=4e0d3d1e089hwt9ejouy'
63  postdata = {'douban':'on','fanfou':'on','id':'0B5F8533A77CC23CC7B953DD11A8D30A','kaixin001':'on','qq':'on','renren':'on','sina':'on','status':''}
64  a = AutoloadingLogin(validatecodeurl,userdata,loginurl,validatename,codesavepath,posturl,postdata)
65  #登录并签到
66  a.login()
67 
68if __name__ == '__main__':
69  main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值