日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

调用Python的PyAutoGUI模块模拟登录QQ邮箱

發布時間:2023/12/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调用Python的PyAutoGUI模块模拟登录QQ邮箱 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??PyAutoGUI模塊可以模擬鍵盤和鼠標操作,同時還支持基于圖片查找屏幕中的指定內容。本文嘗試模擬鼠標和鍵盤操作通過瀏覽器登錄QQ郵箱。
??最初的想法是通過瀏覽器圖標定位瀏覽器,然后啟動瀏覽器,再定位到輸入欄輸入QQ郵箱地址后登錄郵箱,這種方式主要是要能通過圖片準確定位到所需點擊或輸入內容的位置,然后再模擬鼠標和鍵盤操作。但是編寫程序過程中卻發現,最簡單的還是通過坐標定位,由于屏幕大小固定,所需點擊或輸入內容的位置也固定,只要預先計算坐標,直接將鼠標移動到坐標處進行處理即可。同時PyAutoGUI網站的幫助文檔(參考文獻1)中給出了獲取當前鼠標位置的示例代碼,可以輕松地獲取所需的坐標位置,示例代碼如下圖所示:

import pyautogui, sys print('Press Ctrl-C to quit.') try:while True:x, y = pyautogui.position()positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)print(positionStr, end='')print('\b' * len(positionStr), end='', flush=True) except KeyboardInterrupt:print('\n')

??獲取到坐標后,代碼寫起來也比較簡單,大致思路就是將鼠標移動到指定位置,模擬鼠標點擊或鍵盤輸入,但是實際執行過程中遇到了以下問題:

  • 模擬鼠標雙擊沒有反應。這個在之前的文章中已經討論過,主要是被360安全軟件攔截了。目前有效的解決辦法是將瀏覽器圖標固定到任務欄中,然后單擊任務欄中的瀏覽器圖標啟動瀏覽器;
  • 清除瀏覽器地址欄。打開瀏覽器后,地址欄中默認有內容,或者是空白頁,或者是默認的訪問地址,此時定位到地址欄輸入內容的話,會將輸入內容插入到默認內容中。瀏覽器打開時,如果地址欄有內容,默認是選中的,因此先模擬按delete鍵,再輸入內容;
  • 瀏覽器默認輸入法。本人瀏覽器中默認輸入法為中文,因此在瀏覽器中輸入QQ郵箱地址后,如果僅模擬一次回車,只是會將郵箱地址錄入到地址欄,并不會跳轉到QQ郵箱網站,需要模擬兩次回車才能跳轉;
  • 輸入郵箱賬號。跳轉到QQ郵箱網站后,賬號輸入框默認顯示上次登錄時的賬號信息,需要清空賬號輸入框內容后再輸入賬號,本文中模擬鼠標移動到輸入框內,然后模擬全選鍵ctrl+a,再模擬delete鍵清空內容,這樣就可以輸入賬號。

??由于是在常用電腦中登錄QQ郵箱,登錄時沒有進行圖片驗證,輸入賬號和密碼后,點擊登錄按鈕就直接登進郵箱了,完整的代碼如下所示:

# coding=utf-8import pyautogui import time#啟動瀏覽器 pyautogui.moveTo(345,554,2) pyautogui.click() time.sleep(2)#移動到地址欄并刪除地址欄選中內容 pyautogui.moveTo(456,140,2) pyautogui.press('del') pyautogui.click() time.sleep(2)#輸入qq郵箱地址 pyautogui.typewrite('mail.qq.com') pyautogui.press('enter') pyautogui.press('enter')#輸入qq郵箱賬號和密碼 pyautogui.moveTo(980,220,2) pyautogui.click() time.sleep(1) pyautogui.hotkey('ctrl', 'a') pyautogui.typewrite('12345678') time.sleep(1) pyautogui.moveTo(980,280,1) pyautogui.click() time.sleep(1) pyautogui.typewrite('XXXXXXXX')#點擊登錄郵箱 pyautogui.moveTo(1127,462,1) pyautogui.click() time.sleep(2)

??代碼比較簡單,主要是因為沒有圖片驗證就直接登進郵箱了,如果是在不常用電腦上登錄的話,還需要經過2道圖片驗證后才能登錄,由于圖片驗證比較復雜(一個是拼圖,另一個是點字),再使用PyAutoGUI模塊模擬登錄就不知道行不行了。

參考文獻:
[1]https://pyautogui.readthedocs.io/en/latest/

總結

以上是生活随笔為你收集整理的调用Python的PyAutoGUI模块模拟登录QQ邮箱的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。