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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
python实现复制整个目录的方法
May 12 Python
Python字符串切片操作知识详解
Mar 28 Python
python虚拟环境virtualenv的安装与使用
Sep 21 Python
Python遍历pandas数据方法总结
Feb 09 Python
python使用pygame模块实现坦克大战游戏
Mar 25 Python
Python中的类与类型示例详解
Jul 10 Python
python cumsum函数的具体使用
Jul 29 Python
pytorch多GPU并行运算的实现
Sep 27 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
Jul 07 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
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
django ajax json的实例代码
2018/05/29 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
旅游网创业计划书
2014/01/31 职场文书
2014年网管工作总结
2014/12/11 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
pandas数值排序的实现实例
2021/07/25 Python
MySQL中一条update语句是如何执行的
2022/03/16 MySQL