发帖机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秒))
一個文件(每行不同的水軍內容),一個按鈕(發送)。
然后寫完測試成功,現在我的好朋友上班點點鼠標就行了。。。。。
然后請我吃了頓好的,美滋滋。
總結
以上是生活随笔為你收集整理的发帖机python_如何用python写一个自动顶帖机?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3-整数运算
- 下一篇: git pull 配置免密_git pu