加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python实现论坛自动签到

发布时间:2020-12-20 10:39:23 所属栏目:Python 来源:网络整理
导读:[文件] DakeleSign.py ~ 4KB #!/usr/bin/env python# -*- coding: utf-8 -*-__author__ = ‘poppy‘‘‘‘dakele bbs sigin‘‘‘import sysimport urllib2import urllibimport requestsimport cookielibimport jsonfrom pyquery import PyQuery as pqimport
  • [文件] 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‘http://bbs.dakele.com/‘,‘username‘: self.name,‘password‘:self.password,‘remember‘:‘0‘}
            logging.debug(u‘loginparams is : %s‘ % loginparams)
            req = urllib2.Request( r‘http://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‘http://bbs.dakele.com/‘+s_action,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(‘http://bbs.dakele.com/dsu_paulsign-sign.html‘);
    
    在学习过程中有什么不懂得可以加我的
    python学习交流扣扣qun,×××
    群里有不错的学习视频教程、开发工具与电子书籍。
    与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读