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 相关文章推荐
如何利用Fabric自动化你的任务
Oct 20 Python
json跨域调用python的方法详解
Jan 11 Python
定制FileField中的上传文件名称实例
Aug 23 Python
Django与JS交互的示例代码
Aug 23 Python
django-rest-swagger的优化使用方法
Aug 29 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
用python爬虫批量下载pdf的实现
Dec 01 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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中echo和print的区别
2014/08/28 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
详解vue axios中文文档
2017/09/12 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
python中的装饰器详解
2015/04/13 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
大专应届生个人简历的自我评价
2013/10/15 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
企业文化建设实施方案
2014/03/22 职场文书
大学自主招生推荐信
2014/05/10 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
JS封装cavans多种滤镜组件
2022/02/15 Javascript