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的id()函数解密过程
Dec 25 Python
python从入门到精通(DAY 3)
Dec 20 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 Python
python中PyQuery库用法分享
Jan 15 Python
django使用多个数据库的方法实例
Mar 04 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 验证码实例代码
2010/06/01 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
基于node实现websocket协议
2016/04/25 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
python批量下载抖音视频
2019/06/17 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
出纳的岗位职责
2013/11/09 职场文书
劳资人员岗位职责
2013/12/19 职场文书
千元咖啡店的创业计划书范文
2013/12/29 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
2015年清明节活动总结
2015/02/09 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
庆祝教师节主持词
2015/07/06 职场文书
2015党建工作简报
2015/07/21 职场文书
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android