python模拟登陆discuz论坛
#! /usr/bin/env python
# -*- coding: utf-8 -*- import urllib2, urllib, cookielib, re, time
class Robot(object):
def __init__(self, forumUrl, userName, password, proxy = None):
''' 初始化论坛url、用户名、密码和代理服务器 '''
self.forumUrl = forumUrl
self.userName = userName
self.password = password
self.formhash = ''
self.isLogon = False
self.isSign = False
self.xq = ''
self.jar = cookielib.CookieJar()
if not proxy:
self.openner = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.jar)) #设置cookie变量
else:
self.openner = urllib2.build_opener(
urllib2.HTTPCookieProcessor(self.jar),
urllib2.ProxyHandler({'http' : proxy}))
urllib2.install_opener(openner)
def login(self):
''' 登录论坛 '''
url = self.forumUrl + "/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1";
#登陆地址与下面的回帖地址至关重要,我这里用个的fiddler工具抓包获取的webforms的数据
postData = urllib.urlencode({
'username': self.userName,
'password': self.password,
'answer': '',
'cookietime': '',
'handlekey': 'ls',
'quickforward': 'yes',
'fastloginfield': 'username'
})
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/49.0.2623.112'
headers = { 'User-Agent' : user_agent }
req = urllib2.Request(url,data=postData,headers=headers)
content = self.openner.open(req).read() #使用cookie去访问页面,并保存cookie到变量,后面访问其他页面会使用
#print content
if str(11040) in content:
self.isLogon = True
print 'logon success!'
self.initFormhashXq()
else:
print 'logon faild!'
def initFormhashXq(self):
''' 获取formhash'''
content = self.openner.open(self.forumUrl + '/bbs/forum.php?mod=viewthread&tid=39765&extra=page%3D1').read().decode('utf-8')
#self.openner为上面保存到的cookie变量值,通过它可以去访问其它页面。这里的页面是一个帖子的地址。随意找的一个 为了获取formhash值
#print content
rows = re.findall(r'<input type=\"hidden\" name=\"formhash\" value=\"(.*?)\" />', content) #正则匹配找到formhash值
if len(rows)!=0:
self.formhash = rows[0]
print 'formhash is: ' + self.formhash
else:
print 'none formhash!'
def reply(self, tid, subject = u'',msg = u'支持玉树临风,人见人爱的高先生~~嘻嘻'):
''' 回帖 '''
url = self.forumUrl + '/bbs/forum.php?mod=post&action=reply&fid=822&tid={}&extra=page%3D1&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1'.format(tid)
#url为要回帖的地址
postData = urllib.urlencode({'formhash': self.formhash,
'message': msg.encode('utf-8'),
'subject': subject.encode('utf-8'),
'posttime':int(time.time()) })
#定义一个postdata数据
req = urllib2.Request(url,postData)
content = self.openner.open(req).read().decode('utf-8')
#print content
if u'发布成功' in content:
print 'reply success!'
else:
print 'reply faild!'
if __name__ == '__main__':
robot = Robot('http://192.168.150.1', 'admin', 'admin')
robot.login()
robot.reply(39765)
说明:到此已实现论坛的自动登录回帖功能,由于图片上传不了很多细节没描述清楚,有问题可以加群244844732(群刚创建)交流
python模拟登陆discuz论坛的更多相关文章
- Python模拟登陆新浪微博
上篇介绍了新浪微博的登陆过程,这节使用Python编写一个模拟登陆的程序.讲解与程序如下: 1.主函数(WeiboMain.py): import urllib2 import cookielib i ...
- Python模拟登陆万能法-微博|知乎
Python模拟登陆让不少人伤透脑筋,今天奉上一种万能登陆方法.你无须精通HTML,甚至也无须精通Python,但却能让你成功的进行模拟登陆.本文讲的是登陆所有网站的一种方法,并不局限于微博与知乎,仅 ...
- Python模拟登陆TAPD
因为在wiki中未找到需要的数据,查询也很迷,打算用python登录tapd抓取所需项目下的wiki数据,方便查找. 2018-9-30 19:12:44 几步走 模拟登录tapd 抓取wiki页左侧 ...
- Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享 支付宝十年账单上的数字有点吓人,但它统计的项目太多,只是想看看到底单纯在淘宝上支出了多少,于是写了段脚本,统计任意时间段淘宝订单的消费情况,看 ...
- Python模拟登陆某网教师教育网
本文转载自看雪论坛[作者]rdsnow 不得不说,最近的 Python 蛮火的,我也稍稍了解了下,并试着用 Python 爬取网站上的数据 不过有些数据是要登陆后才能获取的,我们每年都要到某教师教育网 ...
- python模拟登陆知乎并爬取数据
一些废话 看了一眼上一篇日志的时间 已然是5个月前的事情了 不禁感叹光阴荏苒其实就是我懒 几周前心血来潮想到用爬虫爬些东西 于是先后先重写了以前写过的求绩点代码 爬了草榴贴图,妹子图网,后来想爬婚恋网 ...
- python 模拟登陆,请求包含cookie信息
需求: 1.通过GET方法,访问URL地址一,传入cookie参数 2.根据地址一返回的uuid,通过POST方法,传入cooki参数 实现思路: 1.理解http的GET和POST差别 (网上有很多 ...
- python模拟登陆之下载
好长时间没有更新博客了,哈哈. 今天公司给了这么一个需求,现在我们需要去淘宝获取上一天的订单号,然后再根据订单号去另一个接口去获取订单详情,然后再给我展示到web! 中间涉及到的技术点有: 模拟登陆 ...
- Android HttpClient自己主动登陆discuz论坛!
你登陆论坛的时候,我们先看看浏览器干了什么事儿: 用Firefox打开HiPda 的登陆页面,输入用户名和password,点登陆. 以下是通过firebug插件获取的数据: 能够看到浏览器这个htt ...
随机推荐
- 【kmp+最小循环节】poj 2406 Power Strings
http://poj.org/problem?id=2406 [题意] 给定字符串s,s=a^n,a是s的子串,求n最大是多少 [思路] kmp中的next数组求最小循环节的应用 例如 ababab ...
- 云计算与 OpenStack
“云计算” 算是近年来最热的词了.现在 IT 行业见面不说这三个字您都不好意思跟人家打招呼. 对于云计算,学术界有各种定义,大家有兴趣可以百度一下. CloudMan 这里主要想从技术的角度谈谈对云计 ...
- 2017 ACM/ICPC 广西邀请赛 题解
题目链接 Problems HDOJ上的题目顺序可能和现场比赛的题目顺序不一样, 我这里的是按照HDOJ的题目顺序来写的. Problem 1001 签到 #include <bits/std ...
- git(三):第一次github了解使用
第一次使用github,看了一下使用说明,创建第一个repository,以后还要多学习. 一.Github创建一个新仓库 ······Creat a new repository 创建一个新仓库,点 ...
- nginx源码学习资源(不断更新)转
原文地址:http://www.cnblogs.com/yjf512/archive/2012/06/13/2548515.html nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx ...
- 注解@RequestMapping value 用法
本文引自:https://blog.csdn.net/qq_33811662/article/details/80864784 RequestMapping是一个用来处理请求地址映射的注解,可用于类. ...
- [置顶] 内存管理一点也不神秘————手绘iOS内存管理细节
今天给大家带来的一篇手绘风格博文<内存管理一点也不神秘> 每当我们程序执行alloc/new/copy/mutableCopy的时候,当我们执行release的时候,当我们执行retain ...
- Go --- GC优化经验
不想看长篇大论的,这里先给个结论,go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用. 想知道如何提前预防和解决问 ...
- 转:国内Top500Android应用分析报告
转自:https://mp.weixin.qq.com/s?__biz=MzA5OTMxMjQzMw==&mid=2648112527&idx=1&sn=b23c1b5f3e3 ...
- hadoop2.7.1 nutch2.3 二次开发windows环境
Hadoop windows编译: 能够略过这一段,直接下载hadoo2.7.1 bin文件.我的资源里有终于生成的winutils.exe和一些native code,放在bin文件夹即可了 參 ...