满意答案
由于论坛一直以来都有发帖机出现,所以对发帖机充满了好奇,总想自己写个程序来自动发帖、回复等功能,最近几个月一直在接触python,于是想到了用python来实现以上功能
发帖机的基本工作原理就是用程序来模拟人工发帖的一个过程
分析discuz发帖的过程:
1.输入用户名和密码登陆
2.点击进入某个版块
3.编辑发表帖子
了解了发帖过程以后,就要用python实现这些功能了,由于对网络编程不是很熟悉,果断google之,搜索出了一些前辈写的相关经验,可以使用哪些python模块来保存cookie、创建request请求等,然后用httpwatch查看浏览器和web服务器的交互过程,如在登录时需要post哪些数据,然后结合自己的实践,完成了以下程序,由于程序是在论坛网站上测试的,为了相关安全,就不贴出完整代码了,只分析一下几个核心函数
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import urllib2,cookielib,urllib,sys,re,random //导入相关模块
def GetFormhash(url): //取得每个url随机生成的formhash值,这个值很重要,在登录或回帖前首先要取得这个值,然后post数据中需要包含此值 page=urllib2.urlopen(url)
value=re.compile(r’name=”formhash” value=”(.*)”‘)
formhash=value.findall(page.read())[0]