這篇文章主要介紹“怎么用Python寫一個自動化機器人消滅廣告”,在日常操作中,相信很多人在怎么用Python寫一個自動化機器人消滅廣告問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Python寫一個自動化機器人消滅廣告”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
站在用戶的角度思考問題,與客戶深入溝通,找到涉縣網(wǎng)站設(shè)計與涉縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋涉縣地區(qū)。
第一回合
其實一開始的思路很簡單,總共分兩步,首先成功識別出這些人再用Python將他們踢出去即可。
但是這兩步,每一步都不簡單,先來說說第一步如何準確的識別這些用戶,網(wǎng)上沒有數(shù)據(jù)也沒有一個好的鑒別標準,只能用我的大腦完成特征識別。經(jīng)過這幾個月,近百份發(fā)廣告用戶的樣本訓(xùn)練,我這個“人工智能”基本可以判斷一個非正常用戶至少滿足下面幾條中的三條以上:
沒有設(shè)置微信號
頭像為網(wǎng)紅女生
微信名為特殊符號或者表情
沒發(fā)過朋友圈
沒有朋友圈背景圖
通過后不會有除進群申請外的其他回復(fù)
并且根據(jù)歷史數(shù)據(jù),符合1、3條的用戶有極大概率為小廣告愛好者,那么接下來要做的就是用Python寫代碼找出微信里面的這些人。在總結(jié)出這一規(guī)律后很樂觀的認為實現(xiàn)這一需求并不困難,因為我在幾年前就曾拿過Python研究微信好友,不論是wxpy還是itchat操作起來應(yīng)該都不復(fù)雜,但是事實確證明我還是太年輕了
不知從何時起,雖然這些庫還能安裝使用但是微信基本已經(jīng)禁止了大部分人的網(wǎng)頁版微信登陸權(quán)限,因此當我使用多個微信號分別掃完登陸微信的二維碼之后,無一例外的提示我
1203 為了你的帳號安全,此微信號已不允許登錄網(wǎng)頁微信。 你可以使用Windows微信或Mac微信在電腦端登錄。
這就讓人頭疼了,總不能手動的去一個一個check我的幾千個微信好友吧,于是我開始思考是否有其他的解決辦法。
第二回合
如果你經(jīng)常寫Python爬蟲,那么你會知道在有些情況下,與其使用Requests對付一些惡心的反爬措施,不如Selenium操作起來方便。所以在發(fā)現(xiàn)想使用基于微信API的思路失效后,我將目光轉(zhuǎn)向了相對笨一點的方法————pynput
pynput是一款使用Python來控制和監(jiān)控電腦鼠標、鍵盤的第三方庫,說到這里你大概明白我想怎么做了,直接用API取數(shù)據(jù)搞不定,那么我就像Selenium一樣,模擬點擊一個一個好友來實現(xiàn)我想要的操作。
下面簡單說一下這個庫,因為沒有太多依賴庫所以安裝起來很簡單,直接pip install pynput即可,使用起來也很簡單,對于鼠標操作只依賴坐標,看個demo?
就像上面GIF演示的一樣,先導(dǎo)入pynput并實例一個鼠標控制器,接著將微信在狀態(tài)欄的位置提交給mouse.position,這樣鼠標就會移動到該位置,再使用mouse.press來模擬鼠標點擊即可自動打開微信。那么問題來了,如何獲得我想要的位置的坐標?總不能一點一點試吧!
pynput除了使可以使用Controller來控制鼠標,也可以監(jiān)控鼠標,比如使用下面的代碼就可以記錄下程序啟動后鼠標的每一個點擊操作所在的位置?
from pynput import mouse def on_move(x, y ): print('鼠標移動至 {0}'.format( (x,y))) def on_click(x, y , button, pressed): print('{0} 在坐標 {1}'.format('鼠標點擊' if pressed else '鼠標釋放', (x, y))) if not pressed: return False while True: with mouse.Listener(on_moveon_move = on_move,on_clickon_click = on_click) as listener: listener.join()
那么接下來的任務(wù)就簡單了,我們只需要保持微信窗口不移動,在記錄下每一個關(guān)鍵位置的坐標(微信圖標位置,群聊窗口位置,單個群成員頭像位置)之后,比如我們想對上面說的第一條規(guī)則進行判斷即獲取每一個群成員微信號是否設(shè)置,就可以按照模擬以下操作實現(xiàn):
點擊微信app
點擊需要的群聊
依次點擊每一個群成員頭像
移動到微信號的位置
雙擊該微信號
復(fù)制該微信號判斷是否為初始微信號
在上面的過程中,值得說的是最后一步,復(fù)制我們可以使用pynput中的鍵盤控制器,在雙擊選中對應(yīng)微信號之后通過下面的代碼實現(xiàn)模擬鍵盤輸入Command + C完成復(fù)制操作
from pynput.keyboard import Key from pynput.keyboard import Controller as Controller1 keyboard = Controller1() with keyboard.pressed(Key.cmd): keyboard.press('c') keyboard.release('c')
但是粘貼則不需要使用pynput通過模擬command+c來粘貼到另一個編輯中復(fù)雜過程,我們可以使用第三方庫pyperclip,直接通過下面兩行代碼即可將復(fù)制好的文字轉(zhuǎn)為字符串
import pyperclip pyperclip.paste()
在將群成員的微信號轉(zhuǎn)換為字符串后,不論我們是通過判斷字符串的長度還是用正則表達式或者是其他的方法都可以輕松的判斷該成員的微信號是否為初始微信號,實現(xiàn)規(guī)則1的判斷,下面的代碼與動態(tài)圖就是獲取第一個群成員微信號的完整過程
from pynput.mouse import Button, Controller import time from pynput.keyboard import Key from pynput.keyboard import Controller as Controller1 import pyperclip mouse = Controller() # 點擊微信 mouse.position = (1046.14453125, 4.546875) time.sleep(2) mouse.press(Button.left) mouse.release(Button.left) #點擊頭像 mouse.position = (1194.140625, 441.05859375) time.sleep(1) mouse.press(Button.left) mouse.release(Button.left) # 點擊選中文本 mouse.position = (965.60546875, 284.0390625) time.sleep(1) mouse.click(Button.left, 2) keyboard = Controller1() with keyboard.pressed(Key.cmd): keyboard.press('c') keyboard.release('c') time.sleep(1) wechatid = pyperclip.paste() print(f"微信號{wechatid}疑似廣告號" if len(wechatid) > 20 else f"微信號{wechatid}不是廣告號")
可以看到成功將早小起的微信從廣告號中排除
那么接下來只需要記錄下每兩個群成員之間間隔的坐標距離,之后循環(huán)去模擬滾動或者下拉來實現(xiàn)上述過程,就可以將群里所有成員的微信號根據(jù)規(guī)則1進行判斷,找到異常的那些成員單獨進行判斷。
可以看到最終是找到了6個疑似廣告號的微信,接下來通過其他規(guī)則的手動判斷最終將兩個用戶判定為廣告高風(fēng)險用戶并移除。
到此,關(guān)于“怎么用Python寫一個自動化機器人消滅廣告”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站名稱:怎么用Python寫一個自動化機器人消滅廣告
網(wǎng)站網(wǎng)址:http://weahome.cn/article/gecphh.html