前言
許多社區類平臺都具備點贊功能,應運而生的就是自動點贊器,今天用Python寫一款點贊機器人,最簡單易理解的核心邏輯,全
文涉及的偽代碼,使用 Python 撰寫,由于是偽代碼的原因,不懂Python,你也能看懂,

一、簡介
1.適用場景
本次點贊機器人,主要面向電腦上的 Web 站點,不涉及 APP 端,
2.核心邏輯
模擬點擊操作,觸發點贊,喜歡等操作,實作點贊操作前,還有一步重要的代碼實作,模擬登錄,因此,點贊機器人的基本需求
包括模擬登錄、進行點贊;
對該需求進行擴展后,存在兩個常見的業務場景,
?通過模擬登錄大量賬號,實作針對 “一人/一物/一文/一視頻” 的大量點贊,即刷別人的分;
?通過登錄一賬號,實作針對“多人”的批量點贊,即刷自己的分,

二、代碼實作
邏輯梳理清楚之后,就可以進入實際的編碼環節,
1.模擬登錄
在登錄實作上,存在兩種思路:
?大量注冊(也可購買)賬號,通過 Python 程式切換賬號,每次登錄點贊之后,切換下一賬號;
?提前通過技識訓人工手段,模擬登錄,記錄賬號登錄后產生的 Cookie,后續維護 Cookie 池實作操作邏輯,
思路二存在的問題為 Cookie 有效期問題,如網站無此限制,建議采用該方式,效率更高,偽代碼實作如下:
Python學習交流Q群:906715085### # 思路一 with open("users.txt","r") as f: user_pass = f.readline() # 模擬登錄 login(user_pass) # 完成登錄后操作 do_someting() # 思路二 with open("cookies.txt","r") as f: one_cookie = f.readline() # 通過攜帶 cookie 引數訪問介面 get_detail(one_cookie) with open("users.txt","r") as f: user_pass = f.readline() # 模擬登錄 login(user_pass) # 完成登錄后操作 do_someting() # 思路二 with open("cookies.txt","r") as f: one_cookie = f.readline() # 通過攜帶 cookie 引數訪問介面 get_detail(one_cookie) with open("users.txt","r") as f: user_pass = f.readline() # 模擬登錄 login(user_pass) # 完成登錄后操作 do_someting() # 思路二 with open("cookies.txt","r") as f: one_cookie = f.readline() # 通過攜帶 cookie 引數訪問介面 get_detail(one_cookie) # 思路一 with open("users.txt","r") as f: user_pass = f.readline() # 模擬登錄 login(user_pass) # 完成登錄后操作 do_someting() # 思路二 with open("cookies.txt","r") as f: one_cookie = f.readline() # 通過攜帶 cookie 引數訪問介面 get_detail(one_cookie)
其中思路二的 Cookie 池,可以人工或者使用程式創建,在模擬登錄部分,碰到的兩個學習難點以及解決方法:
1.驗證碼識別問題:對接打碼平臺;
2.IP 反爬限制:購買 IP 代理池,也可自建代理池,重點看專案成本與對穩定性的要求,

2.點贊介面分析
在很多專案中,當完成了模擬登錄操作,已經表示該網站完全開放了,接下來你要做的就是尋找點贊介面,例如下面的案例(只做參考使用),
①CSDN 點贊介面如下:

介面請求資訊如下:
# POST 傳遞用戶標識與文章 ID Request URL: https://blog.csdn.net//phoenix/web/v1/article/like Request Method: POST # POST 引數如下 articleId=122076691
②知乎點贊介面如下:

介面請求資訊如下:
# 直接 POST 傳遞,用戶標識在 Cookie 中 Request URL: https://www.zhihu.com/api/v4/articles/458921602/like Request Method: POST
③bilibili 點贊介面如下:

介面請求資訊如下:
# 傳遞用戶標識的同時,傳遞相應的引數 Request URL: https://api.bilibili.com/x/article/like Request Method: POST # POST 引數如下 aid: 14849888 like: 1 csrf: 4fc454178a13f7e4494e3b5f48385b3a
通過上述幾個案例發現,點贊操作介面格式基本類似,都是通過 POST 傳遞 Cookie 與特定引數到服務器中,其中 B 站的特殊一
些,攜帶了一個 csrf 引數,該引數可以從 Cookie 中直接提取,
3.點贊器偽代碼實作
偽代碼實作如下:

在呼叫點贊介面部分,你將碰到一個難點:介面中包含位置引數,例如上述的 B 站點贊鏈接中的 csrf,碰到未知引數的解決思路
參考下述描述,繼續以B 站舉例,打開瀏覽器開發者工具,切換到 network 選項卡,當點擊點贊的時候,會出現點贊的資料請
求,如下圖所示,
該請求同時出現了 POST 的相關引數,接下來,按住鍵盤的 Ctrl+F,打開搜索視窗(開發者工具的 network 選項卡中打開),在
搜索框中,輸入要檢索的值,即可找到該值所出現的所有請求位置,然后再進行后續分析即可,重點要找到該引數值產生的位置
與原理,

三、總結
自動點贊機器人存在多樣的應用場景,準確的說,該操作會造成某些平臺的失衡,也會影響平臺資料的公平性,我們不支持該類
業務,但可以學習它的實作原理,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464019.html
標籤:Python
