最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python編寫薅羊毛腳本經(jīng)驗分享

2021-02-07 11:39 作者:阿飛-掙賺  | 我要投稿

蠻多朋友加了群,為了方便朋友們理解和使用腳本,特來進一步說明。提醒,本期不僅需要Python基礎(chǔ),還得理解面向?qū)ο蠛投嗑€程。請酌情觀看。

一、不同需求的難度差別

薅羊毛腳本,就是想用程序來做重復(fù)動作。這個重復(fù),有簡單有復(fù)雜,不同需求下,問題難度差別很大。我們從簡單到復(fù)雜。

1、簡單版

最基本的就是下滑。這個很容易編寫。一個無限循環(huán)搞定。

2、升級版

如果想隔20分鐘去做任務(wù),然后程序運行到足夠時間停止呢。這個也比較容易。

3、挑戰(zhàn)版

如果想多App運行足夠時間后自動切換,同樣也隔20分鐘做任務(wù)呢?是不是覺得難度一下子提升好多,完全兩碼事了?

有句話說,0到1是最困難的。編程也適用。編程里0代表是1,1則是2。編程,單任務(wù),順序執(zhí)行,很簡單。一旦變成2個,就困難。而再進一步2變更多,又容易。

在薅羊毛腳本中,上面的問題是核心,大部分代碼都圍繞它展開。而解決它,使用面向過程編程和單線程就不容易。需要用面向?qū)ο蠛投嗑€程。

二、我的解決思路

1、封裝

面向?qū)ο蟮娜筇卣魇欠庋b、繼承和多態(tài)。而封裝最基本,將不同業(yè)務(wù)邏輯用類來包裝。

  • App動作和執(zhí)行分離

    腳本中apps.py下有多個App名稱的類。比如JingDong,封裝了京某的業(yè)務(wù):簽到、逛商品,逛活動、看視頻和其他。而JingDongMain則是執(zhí)行的類。

  • 封裝基礎(chǔ)工具

    MyAuto類封裝了u2的各種功能,比如點擊、下滑等。

  • 調(diào)度類

    AutoMain類里面包含程序的入口start,還封裝了控制邏輯和保存數(shù)據(jù)的邏輯。

  • 多線程執(zhí)行。

    網(wǎng)上有些片面言論,比如Python有GIL鎖,多線程沒用,做不到真正的并行和并發(fā)。好像Python的多線程一無是處,不值得學(xué)習(xí)和使用。在薅羊毛腳本中,將業(yè)務(wù)執(zhí)行和調(diào)度放在不同的線程里,才能控制程序運行。

這樣來比喻。采用面向?qū)ο蠛投嗑€程,就如同當(dāng)老板雇人來干活,但員工都不太聰明,只會干一件事。在薅羊毛里。員工A只會下滑和做任務(wù),需要給他工具,還得告訴它什么時候下滑和做任務(wù)。員工B記錄時間,讓他來告訴員工A該干啥。一個人(單線程)搞不定?不行,他笨只能干一件事,不能邊干邊記錄時間。那讓員工聰明點自帶工具行不行。他不干活了,我們都不知道是工具壞了還是他偷懶(隔離方便維護代碼)。

2、線程間傳遞信息(通信)

如何告訴業(yè)務(wù)循環(huán)該干啥了呢?這就得解決線程通信的問題。線程間通信有多種方法??梢杂萌肿兞亢蚎ueue,而我采用的是傳入字典的方式。Python一切都是對象。字典是可變類型的對象。對象可以作為參數(shù)傳入函數(shù)或類,所以可以用來傳遞信息。

我的腳本中有一個核心調(diào)度字典,task_control。它創(chuàng)建于AtuoMain,作為參數(shù)傳入TaskThread,又作為參數(shù)傳入App的Main函數(shù),再作為參數(shù)傳入watch_content的無線循環(huán)瀏覽中。機制是這樣的。當(dāng)切換任務(wù)條件出現(xiàn)后,就會修改task_control,而無線循環(huán)中會一直讀取task_control,來完成信息傳遞。(更高級的線程安全問題,這里就不討論了。)

3、如何切換任務(wù)

腳本中長時間瀏覽都是無限循環(huán),信息傳遞進去了,如何跳出循環(huán)來切換任務(wù)呢?我用的是拋異常。Python異常傳遞是層層傳遞,直到被捕獲。它可以穿透命名空間。我利用這種機制來切換任務(wù)。所以腳本中定義了多個異常類。這些都是為切換任務(wù)而設(shè)。因為腳本里有大量的循環(huán),采用return的方法比較麻煩,所以采用了這種方式。

三、總結(jié)

針對開始的問題:多App運行足夠時間后自動切換,中間執(zhí)行任務(wù)的問題。我是用一個線程執(zhí)行動作,一個線程負責(zé)調(diào)度。通過字典來傳遞信息,拋出異常來切換任務(wù)。我是土八路,自學(xué)和摸索。朋友們有更好的方法,歡迎交流探討。也希望使用腳本的朋友,了解腳本的思路,更方便使用。只是不知講清楚沒有,表達能力有限,見諒。

Python編寫薅羊毛腳本經(jīng)驗分享的評論 (共 條)

分享到微博請遵守國家法律
大同县| 囊谦县| 富裕县| 满洲里市| 红安县| 德阳市| 永川市| 延安市| 宁河县| 灵丘县| 赤水市| 怀集县| 石渠县| 崇明县| 合肥市| 五华县| 营山县| 琼结县| 新兴县| 永平县| 林州市| 沐川县| 常熟市| 武乡县| 秭归县| 景德镇市| 眉山市| 运城市| 都兰县| 鄄城县| 长治县| 涞源县| 平阴县| 沂水县| 饶阳县| 华池县| 淮滨县| 五原县| 行唐县| 尚义县| 农安县|