用python實現(xiàn)刷點擊率的示例代碼
背景
同事的老爸參加微信的一個活動,需要刷點擊率,因此,寫了一個程序助之。
準(zhǔn)備
微信活動也是有真實地址的。
通過mitmproxy(man in the middle proxy)的方式,可以獲取微信獲取網(wǎng)頁的真實地址(url)。
完整可運行代碼
import os
import time
import argparse
import platform
def visit_win(url, times, duration):
import urllib2
def _visit_win():
try:
s = urllib2.urlopen(url).read()
except urllib2.HTTPError,e:
print (e.code)
for i in range(times):
_visit_win()
print("{} Done!".format(i+1))
#do not use duration in win
def visit_linux(url, times, duration):
import subprocess
cmd = "curl {}".format(url)
for i in range(times):
subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell=True)
print("{} Done!".format(i+1))
time.sleep(duration)
def parse_input():
input_parser = argparse.ArgumentParser()
input_parser.add_argument("--url",'-u', help="the url your need to visit")
input_parser.add_argument("--times",'-t', type=int, default=10, help="how many times you need to visit")
input_parser.add_argument("--duration",'-d', default=0.5, type=float, help="the duration between two visits")
input_args = input_parser.parse_args()
url = input_args.url
times = input_args.times
duration = input_args.duration
return url, times, duration
def main():
url, times, duration = parse_input()
if platform.system().lower() == 'linux':
visit_linux(url, times, duration)
else:
visit_win(url, times, duration)
print("My evil job is finished!")
if __name__ == '__main__':
main()
我的說明
跨平臺
linux通過curl可以非??焖俚脑L問。
但是同事不懂linux,只能通過urllib庫寫個跨平臺的實現(xiàn)
可擴展性
為了增加程序的通用性,加入argparse庫,通過程序入?yún)崿F(xiàn)靈活應(yīng)用。
**注意:
推薦使用argparse,WXCOP的很多同學(xué)還是使用老的OPTPARSE庫,argparse是用來替代OPTPARSE庫的(來自官方)**
速度
使用subprocess庫會比os.system的方式快,因為,它會fork一個進程,而os.system是阻塞(等待網(wǎng)頁返回很慢),速度快很多。
另外,保留了linux的curl方式,它比urllib庫要快
函數(shù)內(nèi)的函數(shù)
visit_win里還有一個只能內(nèi)部使用的_visit_win
這樣可以表明這個函數(shù)的作用域
庫的導(dǎo)入
沒有呆板的在開頭導(dǎo)入所有需要的庫,而是根據(jù)操作系統(tǒng),在需要時,才導(dǎo)入特定的庫
期望大家的優(yōu)化
代碼里留了優(yōu)化空間,例如使用線程的方式加快urllib的訪問速度等
最后
我寫python好幾年了,有很多積累,歡迎python愛好者一起交流。
以上這篇用python實現(xiàn)刷點擊率的示例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Jupyter導(dǎo)入自定義模塊及導(dǎo)入后TypeError錯誤問題及解決
這篇文章主要介紹了Jupyter導(dǎo)入自定義模塊及導(dǎo)入后TypeError錯誤問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
Python編程實現(xiàn)下載器自動爬取采集B站彈幕示例
這篇文章主要介紹了使用Python編程來實現(xiàn)一個下載器可以自動爬取采集B站彈幕的示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2021-10-10
Python3標(biāo)準(zhǔn)庫之functools管理函數(shù)的工具詳解
functools模塊提供的主要工具就是partial類,可以用來“包裝”一個有默認(rèn)參數(shù)的callable對象。這篇文章主要介紹了Python3標(biāo)準(zhǔn)庫functools管理函數(shù)的工具的實例詳解,需要的朋友可以參考下2020-02-02
Python使用Turtle圖形函數(shù)畫圖顏色填充實例
這篇文章主要介紹了Python使用Turtle圖形函數(shù)畫圖顏色填充實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
python numpy中array與pandas的DataFrame轉(zhuǎn)換方式
這篇文章主要介紹了python numpy中array與pandas的DataFrame轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

