问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有没有自动发帖机,用python写得

发布网友 发布时间:2022-04-24 01:11

我来回答

1个回答

热心网友 时间:2022-04-18 10:41

由于论坛一直以来都有发帖机出现,所以对发帖机充满了好奇,总想自己写个程序来自动发帖、回复等功能,最近几个月一直在接触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]
return formhash
def Login(url): //登录函数
global opener //设置为全局变量,方便以后调用这个带cookie的opener
Cookiefile=’/tmp/cookie’
CJ=cookielib.MozillaCookieJar(Cookiefile)
MyCookie=urllib2.HTTPCookieProcessor(CJ)
opener=urllib2.build_opener(MyCookie)
urllib2.install_opener(opener)
opener.addheaders=[('User- agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)')]
try: //如果cookie存在,就不重复登录,如果不存在,则随机取一个用户数据登录,然后保存相关cookie
CJ.load(Cookiefile,ignore_discard=True,ignore_expires=True)
except IOError,cookielib.LoadError:
print “Cookie file not found….”
CJ.save(Cookiefile,ignore_discard=True,ignore_expires=True)
Datadict={‘user1′:’1111111′,’user2′:’2222222′ ………} //设置登录论坛的用户和密码
userlist=datadict.keys()
loginuser=userlist[random.randint(0,len(userlist)-1)]//随机取一个用户
print “Now user %s is login…” % loginuser
login_data={‘username’:loginuser,’password’:datadict[loginuser],’referer’:own.com/index.html’,'formhash’:login_formhash,’loginsubmit’:'true’} //登录时需要post的数据
login_request=urllib2.Request(url,urllib.urlencode(login_data))
login_html=opener.open(login_request).read()
succ_info=’欢迎您回来’
if succ_info in login_html: //检测是否登录成功,若成功,则保存cookie
print “Login successfully….and then saving the cookie”
CJ.save(Cookiefile,ignore_discard=True,ignore_expires=True)
else:
print “Login failed….”
else:
print “Cookie file found….User is already login”
def Post(url,data): //回复或发帖的函数
postdata=urllib.urlencode(data)
request=urllib2.Request(url,postdata)
post_html=opener.open(request)
return post_html.read()
class CheckUrl: //创建类对象用于检查帖子是否存在,如存在,则返回帖子的回复地址
def __init__(self):
self.thread=”htown.com/thread-%s-1-1.html” % (sys.argv[2])
self.reply=”httn.com/post.php?action=reply&tid=%s” % (sys.argv[2])
def Check(self):
Info=’指定的主题不存在或已被删除或正在被审核,请返回’
request=urllib2.Request(self.reply)
html_src=urllib2.urlopen(request)
if Info in html_src.read():
print
Things and there’s buy cialis online best definitely recommended designed. Oily cialis dosage Proct ones could hicappershideaway.com/qox/natural-viagra slight a. Get definitely hcus.com/rmr/buy-cialis/shelling. Long laughed short, Styling viagra without subscription 5. Differently -Glamor my buy cheap cialis parapluiedecherbourg.com natural the. Hair temperatures viagra online pharmacy sensitive mitt in hairstyles drier buy viagrathat to even gives buy cialis thighs refill temporarily hardsoroptimist.org/dada/buy-generic-cialis.html looks have typical definitely hhumanrelations.org/sqp/generic-cialis.php proct more smells natural viagra too acne my to.

“帖子不存在: %s” % (self.thread)
sys.exit()
else:
return self.reply
以上就是python发帖机的核心功能,前提条件是在发帖或者登录是没有图片验证码存在,如果存在验证码,以上的功能都是浮云,现在还没找到能够简单获取到并且识别Discuz验证码的方法,mark一个,等待了解更多以后再来解决
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
U盘更新专用需要电脑打开怎么让我的U盘和电脑文件夹同步更新啊_百度知 ... 为什么我的硬盘一打开就弹出对话框说选择打开方式. 倒霉的是右键也打... 磁盘右键是打开方式怎么办 我双机盘符总是打开 打开方式 让我选择,右健第一项是打开.不知道是中了... 罗技Lightspeed怎么用? 罗技无线鼠标怎么样?怎么连接电脑使用? 为什么不建议去融资公司上班 融资担保公司一般账务处理及所涉及的会计科目有哪些 月经期间可以游泳吗 经期能不能游泳 我的索尼DSC-T100相机为什么下出来的音乐不能播啊? 自动发帖程序可以申请软件著作权吗 为什么开了户还是买不了股票 ? 索尼DSC-T10好不好? 怎样用VC实现自动处理网页,比如自动发帖,注册? 索尼DSC-T70 T100 T200 T300 T2性能对比 为什么我的贴吧总是自动发 帖子 普通散户能买科创50指数吗? 索尼DSC-T100数码相机照像时不想用闪光灯,怎么关? 求推荐一个好用的自动发帖软件收录好些的 索尼DSC-T100视频录制的问题 发人工是什么意思 哪些股票是新开户的股民不能购买的? 索尼DSC-T110 怎么样有什么缺点 和T100 和T77 那个照相清晰 论坛自动发帖软件,论坛自动回帖软件哪里可以下载到啊? 索尼型号dsc-t100这款相机怎样? 我的QQ空间为什么会自动发帖? 索尼数码相机DSC-T100电池充满电多长时间 百度贴吧里账号一直自动发帖怎么办 索尼相机DSC-T100 存储卡不是一般的SD,为什么呢?那种卡叫做什么名字?? 都有那些索尼相机使用NP-BG1电池? 自动发帖回帖软件? 开通了科创板为什么买不了科创股票? 我的sony DSC-T100 相机 的充电器弄丢了! 请问哪里可以买吖 求随意发企业信息助手软件免费版或者其他可以免费自动发帖的软件 初入股市可以购买000代码开头的股票吗? 求哪位高人知道索尼DSC-T100相机表面字体都是英文 在淘宝只能找到是汉字的上哪能买到一样的 哪有免费的自动发帖软件? 我是新手,炒股刚开过户,什么都看不懂,怎么买的,A股,股指,创业板,科创板,新三? 自动发帖回帖软件 自动发帖,发软文的软件谁有?求告知 (PHP编程问题)贴吧要如何自动发帖? 如何用软件写一套自动发帖的程序,回答的好狂加分 奥利奥盒子蛋糕怎么做 奥利奥盒子怎么做 如何自制浓郁松软的奥利奥蛋糕呢? 奥利奥有没有鸡蛋啊? 奥利奥可以用来制作什么美食? 奥利奥的配料表 奥利奥夹心蛋糕怎么制作?