发帖机python_如何用python写一个自动顶帖机?

周末去了好朋友家玩,继上次我帮他修好电脑(插拔内存条+用橡皮擦擦金手指)后。

又问我说,小x啊,你是搞计算机的,能不能帮我写个自动顶帖(回复)的机器啊?

我的好朋友现在除了用两套房子收租外,觉得待在家里太无聊,现在在做网站运营。

现在他作为一个论坛版主,每天要冒充水军回复固定的贴数。。。

我思考了一下,自动顶帖应该是自动发送HTTP协议的POST包吧。

如果是HTTPS那就比较麻烦了,他给我看了下网站 http://club.xxx.com。

嗯,HTTP的,是个老论坛,有希望短时间解决。

先打开百度,搜索下域名映射IP,IP是49.x.x.x,先记下来了。

然后我说你等会,我下载几个东西试试看,然后我下载了:Python3

WireShark

Notepad++

第一步先登陆他的账号,然后进入发帖页面,打开WireShark监听eth0,设置过滤表达式:

http && ip.addr == 49.x.x.x

回复了一个帖子之后,看下WireShark显示的结果,果然有一个POST包。

Post包到达的URL是以php为后缀的,PHP大法好!

先看下headers,数据格式是urlencode,果然是一个古老的论坛。

完整headers如下

headers = {

'Host': 'club.xxx.com',

'Cache-Control': 'max-age=0',

'Origin': 'http://club.xxx.com',

'Upgrade-Insecure-Requests': '1',

'Content-Type': 'application/x-www-form-urlencoded',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',

'Referer': 'http://club.xxx.com/xxx.html',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.9',

'Cookie': r'xxxxxxxxxxx'

}

完整的body经过组织后如下

message=内容&posttime=时间戳&formhash=XXX&其他参数=...

第二步,构造相似的HTTP包,把headers内容复制出来后,打开notepad++开始写python。

import time

import urllib

from urllib import parse

from urllib import request

headers = {

'Host': 'club.xxx.com',

'Cache-Control': 'max-age=0',

'Origin': 'http://club.xxx.com',

'Upgrade-Insecure-Requests': '1',

'Content-Type': 'application/x-www-form-urlencoded',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',

'Referer': 'http://club.xxx.com/xxx.html',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.9',

'Cookie': #保密#,

'其他没用的参数': #没用#

}

t = time.time()

url = r'http://49.x.x.x/forum.php?action=replay&.....'

data = r'message=test&posttime='+str(t)+r'&formhash=xxx'

req = urllib.request.Request(url=url, headers=headers, data=data.encode(encoding='UTF8'))

response = urllib.request.urlopen(req)

print(response.read())

就是模拟下浏览器发送Post请求,然后打印下Response看看服务器响应什么数据。

第一次发送,Response接到的是一个XML数据,还好心提示我发送数据类型有误。

然后我看了下,原来是忘记encode了,然后尝试进行第二次发送。

Response接到的是一串乱码,打开网页看下,居然直接成功发送了。。

接下来给好朋友定制了一个自动顶帖器,首先查下Python的GUI框架。

好的,自带tkinter,直接用它了。

import tkinter as tk

...

然后我设置了一个文本框(帖子URL),一个文本框(发送间隔:x秒))

一个文件(每行不同的水军内容),一个按钮(发送)。

然后写完测试成功,现在我的好朋友上班点点鼠标就行了。。。。。

然后请我吃了顿好的,美滋滋。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值