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实现Tab自动补全和历史命令管理的方法
Mar 12 Python
深入Python解释器理解Python中的字节码
Apr 01 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
python 执行shell命令并将结果保存的实例
May 11 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
pytorch中的model=model.to(device)使用说明
May 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 checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
javascript 写类方式之五
2009/07/05 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
python安装与使用redis的方法
2016/04/19 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
Python批量启动多线程代码实例
2020/02/18 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Python通过len函数返回对象长度
2020/10/22 Python
python中entry用法讲解
2020/12/04 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
防灾减灾标语
2014/10/07 职场文书
捐助感谢信
2015/01/22 职场文书
会议室管理制度范本
2015/08/06 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP