Python自動化刷投票指令碼開發,微信投票再也不需要發紅包了
歡迎點選右上角關注小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限於Python實戰演練、大航海計劃、BAT內推、學習資料等。
想要學習Python?Python學習交流群:973783996滿足你的需求,資料都已經上傳群檔案,可以自行下載!
前言
現在部分比賽為了推廣贊助商或者比賽本身,需要參賽隊伍進行網上拉票,甚至票數還會佔一定比例的成績。因此,刷票也就應運而生了。此次我們團隊參加一個比賽,就需要網上投票決出前幾名,作為一位技術人員,當然是得“解決”技術能解決的問題嘛,所以就寫了個刷投票外掛來刷一刷。
原理
刷票的原理很簡單,就是相當於模擬人登入網站去投票,只是把這個過程程式化,讓程式代替人到網站去投票。具體一點說把,首先是客戶端(我們)發出請求(Request)給服務端(投票網站),跟他們說,我們需要看他們網站的資訊,然後服務端就會回覆(Respose)我們,我們再把填好的表單發給他們(Request),他們收到後就會回覆我們(Respose)。
主要內容
- 分析網站
- 表單提交
- 構造代理IP池
1. 分析網站
由於每個網站需要提交的資訊都不一樣,那麼首先我們需要對目標網站進行相對應的分析,找出他們的表單介面(也就是URL或者叫網址)以及我們需要提交的資訊。
1.1 收集資訊
使用F12,開啟稽核元素,點選Network,真實地進行一次表單提交
框住的兩個內容就是我們需要知道的一部分表單資訊
- Request URL:請求網址,我們提交的資訊就是傳到這個url裡面去
- Request method:請求方法,我們提交的方法
以上就是需要獲得的基本資訊,根據這些資訊我們就可以編寫刷票外掛了,但作為一個對自身有高標準嚴要求的程式設計師來說,僅僅這樣就足夠嗎?當然不會啦,我們得找一找這個提交過程有沒有什麼漏洞。
怎麼找?分析原始碼,找了找,果真還讓我找到了!
看出什麼沒有,它這裡有兩個致命的漏洞:
1. 它允許提交3支或3支以上的隊伍,並且沒有限制最大數量,只限制了最少數量。
2. 它沒有進行相同資料的篩選。
表單提交
構造表單資訊
# 請求頭資訊
headers = {
'Accept': '*/*',
'Accept-Encoding': 'gzip',
'Accept-Language': 'zh-CN',
'Connection': 'keep-alive',
'Content-Length': '16',
'Content-Type': 'application/x-www-form-urlencoded',
'Host': 'www.dingnf.com',
'Origin': 'http://www.dingnf.com',
'Referer': 'http://www.dingnf.com/active/wxws_s',
'User-Agent': 'Mozilla/4.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.3029.110 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
# post表單網址
url = "http://www.dingnf.com/active/wxws_t"
params = {'ids': ['22', '22', '22']}
r = requests.post(url=url, data=params, headers=headers, proxies=proxies)
構造代理IP池
構造IP代理容器
def WriteIPadress():
all_url = [] # 儲存IP地址的容器
# 代理IP的網址
url = "http://api.xicidaili.com/free2016.txt"
r = requests.get(url=url)
all_url = re.findall("d+.d+.d+.d+:d+",r.text)
with open("D:\code\python\new\Brush ticket\IP.txt",'w') as f:
for i in all_url:
f.write(i)
f.write('
')
return all_url
主函式
由於某些IP地址是存在問題的,所以需要設定異常處理,以便讓程式能夠正常執行,而API的資料每15分鐘更新一次,我們每跑完一遍列表的時間也差不多,因此也就不做其他處理了。
執行日誌
程式碼
相關文章
- 區塊鏈投票系統開發方案,區塊鏈投票系統開發原始碼區塊鏈原始碼
- 用Python開發自動化測試指令碼Python指令碼
- 智慧合約共享投票dapp系統開發(技術支援)丨dapp投票功能開發專案APP
- 微信公眾號投票活動製作教程 微信公眾號投票怎麼弄?
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- Python基於周立功ZCANPRO開發刷寫指令碼Python指令碼
- 摩爾投票
- 介面自動化測試錄製工具,讓python selenium自動化測試指令碼開發更加方便Python指令碼
- 簡易線上投票系統(php)——前端設計(投票頁面的原始碼)PHP前端原始碼
- 簡易線上投票系統(php)——投票頁面PHP
- PHP微信開發——自動回覆PHP
- Django(投票程式)Django
- React Native開發中自動打包指令碼React Native指令碼
- Python自動化開發學習6Python
- web自動化測試框架-02 快速開發用例文件指令碼Web框架指令碼
- 加速Java應用開發速度5:使用指令碼自動化日常操作Java指令碼
- 微信開發(八)自動回覆和多客服開發
- 以太坊DApp開發入門教程——區塊鏈投票系統APP區塊鏈
- solidity投票智慧合約程式碼Solid
- Python 自動化測試開發大綱Python
- 我也用Node寫個每天給她自動發微信的指令碼指令碼
- 開機自動執行python指令碼Python指令碼
- specjvm自動化指令碼JVM指令碼
- docker指令碼自動化Docker指令碼
- 自動化RMAN指令碼指令碼
- 自動化瓦力多渠道打包python指令碼Python指令碼
- JavaScript點選投票效果程式碼例項JavaScript
- jmeter 介面重放(投票活動)JMeter
- OA系統-投票管理
- 淺談摩爾投票法
- 使用TaskManager爬取2萬條代理IP實現自動投票功能
- BABA共享投票DAO流動性挖礦dapp系統開發智慧合約模式定製APP模式
- 測試開發之自動化篇-使用Selenium IDE錄製指令碼IDE指令碼
- 測試開發全棧之 Python 自動化全棧Python
- Dockerfile---指令碼自動化Docker指令碼
- vue自動化部署指令碼Vue指令碼
- welearn自動刷題指令碼刷課新起點進階綜合教程指令碼
- 最新進展|關於Python治理模式的投票Python模式