Python实现某论坛自动签到功能


Posted in Python onAugust 20, 2019

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'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, 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('http://bbs.dakele.com/dsu_paulsign-sign.html');

总结

以上所述实小编给大家介绍的Python实现某论坛自动签到功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
Python批量修改文件后缀的方法
Jan 26 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
python之pandas用法大全
Mar 13 Python
python监控文件并且发送告警邮件
Jun 21 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
pytorch中图像的数据格式实例
Feb 11 Python
python3注册全局热键的实现
Mar 22 Python
Python利用for循环打印星号三角形的案例
Apr 12 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
Django vue前后端分离整合过程解析
Nov 20 Python
python函数的作用域及关键字详解
Aug 20 #Python
pytorch 可视化feature map的示例代码
Aug 20 #Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 #Python
python爬虫 urllib模块url编码处理详解
Aug 20 #Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 #Python
python web框架 django wsgi原理解析
Aug 20 #Python
opencv转换颜色空间更改图片背景
Aug 20 #Python
You might like
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python入门篇之字典
2014/10/17 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Django异步任务线程池实现原理
2019/12/17 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
基于python实现操作redis及消息队列
2020/08/27 Python
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
物流经理自我评价
2013/09/23 职场文书
无传销社区工作方案
2014/05/13 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
2015年父亲节寄语
2015/03/23 职场文书
机器人总动员观后感
2015/06/09 职场文书