Python利用PyAutoGUI輕松搞定圖片上傳
最近用vuepress建了個博客,音樂的背景圖片需要網(wǎng)絡(luò)地址。

還有博客自動復(fù)用的摘要圖片也需地址

開始用的阿里云的免費對象存儲oss,但又是登錄又是設(shè)置讀寫權(quán)限的,稀碎的操作令人疲憊。能不能簡單點,自動上傳,并且馬上能得到文件的網(wǎng)絡(luò)地址。
于是開始探索輕量級的方案,手動給自己搞一個,一鍵復(fù)制開箱即用的的上傳頁面:

把文件傳到自己的云服務(wù)器上,傳完后自帶文件地址和copy按鈕,流程頓時清爽了許多。
接下來的問題是,圖片準備好了,十幾張,怎么傳更輕松點?這時背景音樂響起“王牌飛行員pyautogui請求出戰(zhàn)”。優(yōu)秀,機械重復(fù)的操作(如刷新網(wǎng)頁、搶票、某些小游戲等)無疑是你的拿手好戲。
實時獲取鼠標的當(dāng)前坐標
這點很重要,因為所有的點擊操作都基于坐標,就像selenium的操作基于xpath路徑一樣:
import?time,?os
import?pyautogui?as?pag
try:
????while?True:
????????#print('Press?Ctrl-C?to?end')
????????x,?y?=?pag.position()?#返回鼠標的坐標
????????print('Position?:?(%s,?%s)'?%?(x,?y))?#?打印坐標
????????time.sleep(1)?#每個1s中打印一次?,?并執(zhí)行清屏
????????os.system('cls')?#執(zhí)行系統(tǒng)清屏指令
except?KeyboardInterrupt:
????print('end')
輸出如下,鼠標放在哪就會顯示哪個地方的x,y坐標:
Position : (937, 668)
Position : (1320, 689)
Position : (836, 579)
Position : (669, 585)
開始上傳了
上傳的操作頁面我已建好:
獲取到鼠標坐標就好辦了,一路點擊,瘋狂輸出。selenium還有驗證碼、反爬蟲等限制,這個你自己的電腦,還不是想點哪就點哪。先點擊“選擇文件”按鈕,
import?pyautogui pyautogui.click(307,?227) time.sleep(2.5) #?彈出對話框后,點擊路徑那一欄,目的是為下一步粘貼路徑 pyautogui.click(993,?332) time.sleep(1.5)
typerwrite鍵入文件路徑
每臺電腦的文件路徑不一樣,讓pyautogui的typerwrite輸入圖片文件夾的路徑,不加時間參數(shù),輸入速度飛快
#?鍵入圖片路徑
pyautogui.typewrite('C:/Users/0717/Pictures/blog/upload')
#?按回車鍵
pyautogui.hotkey('enter')
time.sleep(1)

雙擊選中圖片
圖片的位置是固定的,所以可以取前5或前10張圖片的坐標。下次再上傳多張圖的話,先清空文件夾,把圖片拷貝到文件夾就好了
pyautogui.doubleClick(x,y)

點擊“上傳”按鈕
上傳需要時間,sleep一會
pyautogui.click(304,?278) #上傳需要時間,預(yù)算等多久 if?x?==?847: ?#847是第一張圖片的x坐標,因為我上傳的第一張是gif動圖,文件大,上傳多等幾秒 ?time.sleep(11) else: ?time.sleep(2.5)
點擊"copy"按鈕
圖片上傳完后會自動生成copy按鈕,點擊它直接復(fù)制文件的網(wǎng)絡(luò)地址
pyautogui.click(304,?278)

熱鍵ctrl+v,回車,網(wǎng)頁訪問圖片
pyautogui.hotkey('ctrl','v')
time.sleep(0.5)
pyautogui.hotkey('enter')
每張照片傳完再自動粘貼地址和網(wǎng)頁瀏覽,看看剛上傳的圖片多漂亮:

所以,腳本結(jié)束前,讓我們欣賞美圖3秒:
time.sleep(3)
點擊瀏覽器的返回按鈕
最后一步,欣賞完,返回主頁面進入下一張圖片的上傳流程!
pyautogui.click(32,?67) time.sleep(2)

完整腳本
總結(jié)一下,這里用到的pyautogui操作:
- 單擊
click - 雙擊
doubleClick - 輸入文字
typewrite - 熱鍵組合
hotkey('ctrl','v'),熱鍵回車hotkey('enter')
import?time
import?pyautogui
def?auto_upload(x,y,file_path):
????#?點擊”選擇文件“按鈕
????pyautogui.click(307,?227)
????time.sleep(2.5)
????#?彈出對話框后,點擊路徑那一欄,目的是為下一步粘貼路徑
????pyautogui.click(993,?332)
????time.sleep(1.5)
????#?鍵入圖片路徑
????pyautogui.typewrite(file_path)
????#?按回車鍵
????pyautogui.hotkey('enter')
????time.sleep(1)
????#?雙擊圖片
????pyautogui.doubleClick(x,y)
????#?等文件出現(xiàn)
????time.sleep(6)
????#?點擊“上傳”按鈕
????pyautogui.click(304,?278)
????#等幾秒傳完
????if?x?==?847:
????????#847是第一張圖片的x坐標,因為我上傳的第一張是gif動圖,文件大,上傳多等幾秒
????????time.sleep(11)
????else:
????????time.sleep(2.5)
????#?點擊“copy”按鈕
????pyautogui.click(297,?545)
????time.sleep(1)
????#?點擊瀏覽器的地址欄
????pyautogui.click(410,?66)
????#?模擬鍵盤點擊ctrl+v,然后按回車鍵
????pyautogui.hotkey('ctrl','v')
????time.sleep(0.5)
????pyautogui.hotkey('enter')
????#欣賞美女3秒
????time.sleep(3)
????#?點擊瀏覽器的返回按鈕
????pyautogui.click(32,?67)
????time.sleep(2)
#文件的x,y坐標
file_list?=?[(847,?489),(965,?490),(1136,?493),(1271,?504),(1391,?498)]
[?auto_upload(f[0],f[1],'C:/Users/0717/Pictures/blog/upload')?for?f?in?file_list]
運行過程
上傳2張圖片,整個腳本運行起來是這樣的:

最后一個問題
上傳了好幾張,都到哪去了?這里可以看到啦:http://ssw.fit/free/

到此這篇關(guān)于Python利用PyAutoGUI輕松搞定圖片上傳的文章就介紹到這了,更多相關(guān)Python PyAutoGUI圖片上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python pyautogui模擬鍵盤輸入操作的示例詳解
- python pyautogui實現(xiàn)圖片識別點擊失敗后重試功能
- python pyautogui手動活動(模擬鼠標鍵盤)自動化庫使用
- Python自動操作神器PyAutoGUI的使用教程
- Python利用PyAutoGUI模塊實現(xiàn)控制鼠標鍵盤
- Python中PyAutoGUI幫助文檔(推薦!)
- python教程之利用pyautogui圖形自動化擊敗重復(fù)性辦公任務(wù)
- Python中pyautogui庫的使用方法匯總
- python編程PyAutoGUI庫使用與安裝簡介
- python 利用PyAutoGUI快速構(gòu)建自動化操作腳本
- Python中PyAutoGUI?庫的使用
相關(guān)文章
Python選擇網(wǎng)卡發(fā)包及接收數(shù)據(jù)包
今天小編就為大家分享一篇關(guān)于Python選擇網(wǎng)卡發(fā)包及接收數(shù)據(jù)包,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04
Python中實現(xiàn)對Timestamp和Datetime及UTC時間之間的轉(zhuǎn)換
這篇文章主要介紹了Python中實現(xiàn)對Timestamp和Datetime及UTC時間之間的轉(zhuǎn)換,例子則主要針對Ubuntu等類UNIX系統(tǒng),需要的朋友可以參考下2015-04-04
Python常見數(shù)據(jù)類型轉(zhuǎn)換操作示例
這篇文章主要介紹了Python常見數(shù)據(jù)類型轉(zhuǎn)換操作,結(jié)合實例形式分析了Python針對列表、集合、元組、字典等數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解
今天小編就為大家分享一篇對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

