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(菜鸟必看篇)
Jun 10 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
Python查找第n个子串的技巧分享
Jun 27 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
python浪漫表白源码
Apr 05 Python
python全局变量引用与修改过程解析
Jan 07 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
基于python实现模拟数据结构模型
Jun 12 Python
Python函数调用追踪实现代码
Nov 27 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 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中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
jquery中radio checked问题
2015/03/16 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
python画图的函数用法以及技巧
2019/06/28 Python
python二进制文件的转译详解
2019/07/03 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python 实现一个计时器
2020/07/28 Python
python绘制趋势图的示例
2020/09/17 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
教师绩效考核方案
2014/01/21 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
食品流通安全承诺书
2014/05/22 职场文书
电子商务实训报告总结
2014/11/05 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
php引用传递
2021/04/01 PHP
golang import自定义包方式
2021/04/29 Golang