阅读背景:

Python实现论坛自动签到

来源:互联网 
  1. [文件] DakeleSign.py ~ 4KB

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = "poppy"
"""
dakele bbs sigin
"""
import sys
import urllib2
import urllib
import requests
import cookielib
import json
from pyquery import PyQuery as pq
import logging
logging.basicConfig(level=logging.DEBUG)
reload(sys)
sys.setdefaultencoding("utf8")
class Dakele(object):

    def __init__(self,name,password):
        self.name = name
        self.password = password
        self.cj = cookielib.LWPCookieJar()
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
        urllib2.install_opener(self.opener)

    def _getHeaders(self):
        headers = {}
        headers["User-Agent"]="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"
        #headers["Host"]="www.dakele.com"
        headers["Connection"]="keep-alive"
        headers["Cache-Control"]="max-age=0"
        headers["Accept-Language"]="zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4"
        #headers["Accept-Encoding"]="gzip, deflate, sdch"
        headers["Accept"]="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
        return headers

    def login(self):
        """登录网站"""
        logging.debug(u"正在登陆 username : %s password : %s" %(self.name,self.password))
        logging.debug(u"headers is : %s" % self._getHeaders())
        loginparams = {"product": "bbs","surl": r"https://bbs.dakele.com/","username": self.name,"password":self.password,"remember":"0"}
        logging.debug(u"loginparams is : %s" % loginparams)
        req = urllib2.Request( r"https://passport.dakele.com/logon.do", urllib.urlencode(loginparams), headers=self._getHeaders())
        response = urllib2.urlopen(req)
        self.operate = self.opener.open(req)
        thePage = response.read()
        result = json.loads(thePage)
        return result["redirect"]

    def login_bbs(self,url):
        """登录bbs网站"""
        logging.debug( "start bbs login : %s " % url)
        req = urllib2.Request(url,headers=self._getHeaders())
        response = urllib2.urlopen(req)
        self.operate = self.opener.open(req)
        thePage = response.read()
        #print  thePage
    def _say(self,html):
        d = pq(html)
        s_action =  d("#qiandao").attr("action")
        if s_action:
            s_formhash = d("#qiandao input[name=formhash]").attr("value")
            s_qdxq = d("#qiandao input[name=qdxq]").attr("value")
            s_qdmode = "1"
            loginparams = {"formhash":s_formhash,"qdxq":s_qdxq,"qdmode": s_qdmode,"todaysay":u"可乐社区是我家,我们大家都爱Ta..."}
            req = urllib2.Request( r"https://bbs.dakele.com/"+s_action, urllib.urlencode(loginparams), headers=self._getHeaders())
            response = urllib2.urlopen(req)
            self.operate = self.opener.open(req)
            thePage = response.read()
        else:
            logging.debug( u"今天已签到过...")

    def sign(self,url):
        logging.debug( "start bbs sign : %s" % url)
        req = urllib2.Request(url,headers=self._getHeaders())
        response = urllib2.urlopen(req)
        self.operate = self.opener.open(req)
        thePage = response.read()
        self._say(thePage)

if __name__ == "__main__":
    userlogin = Dakele("username","password")
    bbs_loginurl = userlogin.login()
    userlogin.login_bbs(bbs_loginurl)
    userlogin.sign("https://bbs.dakele.com/dsu_paulsign-sign.html");

在学习进程中有甚么不晓得可以加我的
python学习交换扣扣qun,×××
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人材需求及怎样从零基本学习好python,和学习甚么内容
#!/usr/bin/env python



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: