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读取Android permission文件
Nov 01 Python
Python列表(list)常用操作方法小结
Feb 02 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
Python实现图片拼接的代码
Jul 02 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
python使用建议技巧分享(三)
Aug 18 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
Python开发.exe小工具的详细步骤
Jan 27 Python
Django操作cookie的实现
May 26 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可变函数的使用详解
2013/06/14 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
写自已的js类库需要的核心代码
2012/07/16 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
JavaScript运算符小结
2015/06/03 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
您的网上新华书店:文轩网
2016/08/24 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
Jar包的作用是什么
2014/03/30 面试题
SQL面试题
2013/12/09 面试题
离职报告格式
2014/11/04 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
详解PHP服务器如何在有限的资源里最大提升并发能力
2021/05/25 PHP
解决Python字典查找报Keyerror的问题
2021/05/26 Python
Java 数据结构七大排序使用分析
2022/04/02 Java/Android