程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

利用Python制作簡易的點贊器

編輯:Python

目錄

本篇博客試用場景

點贊機器人核心邏輯

代碼層級的實現

模擬登錄

點贊器

總結

在今天,任何一個社區類平台,都具備點贊功能,應運而生的就是自動點贊器,俗稱刷分機/刷贊器。

本文將為你介紹一款點贊機器人,最簡單易理解的核心邏輯。

全文涉及的偽代碼,使用 Python 編寫,由於是偽代碼的原因,不懂 Python,你也能看懂。

本篇博客試用場景

本次點贊機器人,主要面向電腦上的 Web 站點,不涉及 APP 端。

點贊機器人核心邏輯

模擬點擊操作,觸發點贊,喜歡等操作。

實現點贊操作前,還有一步重要的代碼實現,模擬登錄。

因此,點贊機器人的基本需求如下:

模擬登錄;

進行點贊;

對該需求進行擴展後,存在兩個常見的業務場景。

通過模擬登錄大量賬號,實現針對 “一人/一物/一文/一視頻” 的大量點贊,即刷別人的分;

通過登錄一賬號,實現針對“多人”的批量點贊,即刷自己的分。

代碼層級的實現

基本邏輯梳理清楚之後,就可以進入實際的編碼環節。

模擬登錄

在登錄實現上,存在兩種思路:

大量注冊(也可購買)賬號,通過 Python 程序切換賬號,每次登錄點贊之後,切換下一賬號;

提前通過技術或人工手段,模擬登錄,記錄賬號登錄後產生的 Cookie,後續維護 Cookie 池實現操作邏輯。

思路二存在的問題為 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)# 思路一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 代理池,也可自建代理池,重點看項目成本與對穩定性的要求。

點贊器

在很多項目中,當你完成了模擬登錄操作,已經表示該網站對你 完全開放了。

接下來你要做的就是尋找點贊接口,例如下面的案例(只做參考使用):

CSDN 點贊接口如下:

# POST 傳遞用戶標識與文章 IDRequest URL: https://blog.csdn.net//phoenix/web/v1/article/likeRequest Method: POST# POST 參數如下articleId=118558076

知乎點贊接口如下:

# 直接 POST 傳遞,用戶標識在 Cookie 中Request URL: https://www.zhihu.com/api/v4/zvideos/1391420717800554497/likersRequest Method: POST

bilibili 點贊接口如下:

# 傳遞用戶標識的同時,傳遞相應的參數Request URL: https://api.bilibili.com/x/web-interface/archive/likeRequest Method: POST# POST 參數如下aid: 631588341like: 1csrf: b39b26b6b8071e2f908de715c266cb59

通過上述幾個案例,你會發現,點贊操作接口格式基本類似,都是通過 POST 傳遞 Cookie 與特定參數到服務器中。

其中 B 站的特殊一些,攜帶了一個 csrf 參數,該參數可以從 Cookie 中直接提取。

偽代碼實現

import requestsdef like(params): # 請求頭中獲取 Cookie 由模擬登錄獲取 cookie = get_cookie() # cookie = login() headers = {  "其它屬性":"屬性值",  "Cookie":cookie # 重點包含用戶標識 Cookie } res = requests.post("地址","參數","請求頭")

在調用點贊接口部分,你將碰到一個學習難點

接口中包含位置參數,例如上述的 B 站點贊鏈接中的 csrf,碰到未知參數的解決思路參考下述描述。

繼續拿 B 站舉例,打開浏覽器開發者工具,切換到 network 選項卡,當點擊點贊的時候,會出現點贊的數據請求,如下圖所示。

該請求同時出現了 POST 的相關參數,接下來,你只需要按下鍵盤的 Ctrl+F,打開搜索窗口(就是在當前開發者工具的 network 選項卡中打開),在搜索框中,輸入要檢索的值,即可找到該值所出現的所有請求位置,然後再進行後續分析即可。重點要找到該參數值產生的位置與原理。

總結

自動點贊機器人存在多樣的應用場景,准確的說,該操作會造成某些平台的失衡,也會影響平台數據的公平性,但正是因為有需求,所以市場上現在存在大量的點贊器,刷分器,評論器,甚至存在大量的公司去經營此類業務。

我們不支持該類業務,但可以學習它的實現原理。畢竟使用 Python 實現一款自動化工具,了解原理之後,將變得非常簡單。

以上就是利用Python制作簡易的點贊器的詳細內容,更多關於Python點贊器的資料請關注軟件開發網其它相關文章!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved