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生成随机mac地址的方法
Mar 16 Python
对python 自定义协议的方法详解
Feb 13 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
解决python 输出到csv 出现多空行的情况
Mar 24 Python
详解python网络进程
Jun 15 Python
Python数据结构之队列详解
Mar 21 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 的 __FILE__ 常量
2007/01/15 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Python中optparse模块使用浅析
2015/01/01 Python
pandas值替换方法
2018/07/10 Python
Django框架表单操作实例分析
2019/11/04 Python
如何验证python安装成功
2020/07/06 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
Linux如何压缩可执行文件
2013/10/21 面试题
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
元旦寄语大全
2014/04/10 职场文书
甜品店创业计划书
2014/09/21 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
三国演义读书笔记
2015/06/25 职场文书