教你一招!如何用 Python 實現 QQ 訊息自動回覆?

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

作者:il_持之以恆_li

https://blog。csdn。net/qq_45404396/article/details/112750110

前言

近段時間,看了一下運用python實現app自動化的影片,覺得那上面的講的不錯,於是就用所學的知識做了一個程式,實現自動回覆QQ訊息。

1. 準備工作

1.1 安裝client模組

開啟命令視窗,輸入命令:

pip install appium-python-client

1.2 安裝Appium Server

下載網址為:

http://appium。io

1.3 安裝JDK

安裝好之後,新增環境變數JAVA_HOME,指定jdk的安裝目錄,小編為:

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

1.4 安裝android sdk

新增一個環境變數ANDROID_HOME,設定值為sdk包的解壓目錄,小編為:

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

另外,最好在path裡面新增adb。exe的環境變數

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

1.5 投屏軟體

小編用的是米卓同屏助手,下載網址為:

https://cn。mirroid。com

2. 連線手機

小編用的USB連線,需要一條資料線,將手機和電腦端連線起來,同時需要開啟手機的開發者模式。

那麼怎樣開啟開發者模式,以小編的手機為例(OPPO手機)來到手機設定,點選關於手機,之後一直點選版本號,當出現以下字樣即可。

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

然後進入其他設定(不同手機可能不同),就可以看到這裡多了一個開發者選項了。

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

進入開發者選項,然後開啟,可以發現這裡有一個USB除錯的開關,開啟它。

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

開啟之後,就可以看到在這個投屏軟體上了出現了手機的畫面。

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

3. 測試是否連線成功

在命令視窗中輸入:adb devices -l ,如果出現以下這個畫面,應該是成功連線了!

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

有個時候,可能會報錯,一般原因是投屏軟體的adb。exe版本和sdk的adb。exe版本不一致導致的,(小編自己猜測的)應該只需把其中任意一個adb。exe複製到另外那個那裡就行了。

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

教你一招!如何用 Python 實現 QQ 訊息自動回覆?

4. 程式碼實現

參考程式碼如下:

from appium import webdriverimport timedesired_caps={    ‘platformName’:‘Android’,    ‘platformVersion’:‘8。1’,    ‘deviceName’:‘xxx’,    ‘appPackage’:‘com。tencent。qqlite’,  # 自動化應用    ‘appActivity’:‘com。tencent。mobileqq。activity。SplashActivity’,    #‘unicodeKeyboard’:True,    #‘resetKeyboard’:True,    ‘noReset’:True,    ‘newCommandTimeout’:6000,    ‘automationName’:‘UiAutomator2’}driver=webdriver。Remote(‘http://localhost:4723/wd/hub’,desired_caps)driver。implicitly_wait(10)driver2=driver。find_element_by_id(‘recent_chat_list’)list2=driver2。find_elements_by_class_name(‘android。widget。LinearLayout’)print(‘當前QQ訊息為%d個’%(len(list2)))time。sleep(2)list2[0]。click()def send_Message(text2:str):   # 發訊息    driver4=driver。find_element_by_id(‘inputBar’)    driver4。find_element_by_id(‘input’)。send_keys(text2)    driver4。find_element_by_id(‘fun_btn’)。click()    time。sleep(2)    print(“傳送訊息:%s”%(text2))list4=[“劉邦,字季,沛郡豐邑(今江蘇省豐縣)人。中國歷史上傑出的政治家、戰略家和軍事指揮家,漢朝開國皇帝,漢民族和漢文化的偉大奠基者和開拓者,對漢族的發展以及中國的統一有突出貢獻。”,“還沒”,“湖南省,簡稱“湘”,是中華人民共和國省級行政區,省會長沙,界於北緯24°38′~30°08′,東經108°47′~114°15′之間,東臨江西,西接重慶、貴州,南毗廣東、廣西,北連湖北,總面積21。18萬平方千米。”]while True:    try:        driver3=driver。find_element_by_id(‘listView1’)        list3=driver3。find_elements_by_class_name(‘android。widget。RelativeLayout’)        text=list3[-1]。find_element_by_id(‘chat_item_content_layout’)。text        print(‘收到訊息:%s’%(text))      # 接收訊息        time。sleep(5)        if(text==‘你好,請幫我查閱一下劉邦的簡介’):            send_Message(list4[0])        elif(text==“你吃中飯了沒”):            send_Message(list4[1])        elif(text==“介紹一下湖南唄!”):            send_Message(list4[2])    except Exception as e:        pass

在執行程式碼的過程當中,會在手機上自動安裝一些東東,同意安裝即可。