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中的二叉树查找算法模块使用指南
Jul 04 Python
使用Python的Django框架实现事务交易管理的教程
Apr 20 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
python字典快速保存于读取的方法
Mar 23 Python
python调用摄像头显示图像的实例
Aug 03 Python
Python列表list排列组合操作示例
Dec 18 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
CentOS7安装Python3的教程详解
Apr 10 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
在脚本中单独使用django的ORM模型详解
Apr 01 Python
python tkinter实现连连看游戏
Nov 16 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文件上传表单摘自drupal的代码
2011/02/15 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
jQuery使用手册之一
2007/03/24 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
Sanic框架Cookies操作示例
2018/07/17 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
python采集微信公众号文章
2018/12/20 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
cookies应对python反爬虫知识点详解
2020/11/25 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
德国家具在线:Fashion For Home
2017/03/11 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
nohup的用法
2014/08/10 面试题
《音乐之都维也纳》教学反思
2014/04/16 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
2014年销售部工作总结
2014/12/01 职场文书
2014年政协工作总结
2014/12/09 职场文书
文明单位申报材料
2014/12/23 职场文书