久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

輕量級(jí)RPA實(shí)戰(zhàn):基于Python圖像識(shí)別與鍵鼠模擬的簡(jiǎn)易自動(dòng)化工具指南

輕量級(jí)RPA實(shí)戰(zhàn):基于Python圖像識(shí)別與鍵鼠模擬的簡(jiǎn)易自動(dòng)化工具指南 簡(jiǎn)介RPAworker簡(jiǎn)易自動(dòng)化工具是一款面向零基礎(chǔ)辦公人員的RPA自動(dòng)化輔助軟件采用圖片定位與Excel指令編排相結(jié)合的方式讓用戶通過截圖和表格設(shè)置就能生成自動(dòng)化流程工具支持近40個(gè)操作指令可按照從上到下的順序逐條執(zhí)行覆蓋報(bào)表下載、表單填寫、重復(fù)點(diǎn)擊等日常辦公場(chǎng)景有效減少機(jī)械化重復(fù)操作。其配置邏輯直觀把界面元素截圖作為定位依據(jù)在Excel表中按順序填寫操作指令即可生成可重復(fù)運(yùn)行的流程后期修改只需調(diào)整表格內(nèi)容。使用者無(wú)需編程語(yǔ)言基礎(chǔ)只要掌握截圖與Excel基本操作即可自行配置若后續(xù)學(xué)習(xí)一點(diǎn)數(shù)據(jù)庫(kù)知識(shí)還可借助同一套邏輯搭建網(wǎng)頁(yè)爬蟲采集數(shù)據(jù)把自動(dòng)化范圍擴(kuò)展到網(wǎng)絡(luò)端。資源包為zip壓縮格式大小約76.71MB支持Win7及以上版本服務(wù)器需Win2008及以上Win10下運(yùn)行最穩(wěn)定Win7若閃退可按系統(tǒng)位數(shù)安裝vc_redist運(yùn)行庫(kù)后正常使用。目前已有251人學(xué)習(xí)關(guān)注對(duì)于文員、個(gè)人開發(fā)者等希望低成本入門RPA的用戶而言這份輕量工具可直接下載解壓進(jìn)行流程配置和測(cè)試。1. RPAworker簡(jiǎn)易自動(dòng)化工具為什么它比“大而全”的RPA平臺(tái)更適合個(gè)人和小團(tuán)隊(duì)每天早上一到工位先把三個(gè)業(yè)務(wù)系統(tǒng)的報(bào)表導(dǎo)出來(lái)照著規(guī)則填進(jìn)Excel再打開網(wǎng)頁(yè)逐個(gè)錄入最后發(fā)郵件通知——這套動(dòng)作我做了快一年直到有一天我數(shù)了一下每天大概要花四十分鐘在這類毫無(wú)技術(shù)含量的重復(fù)操作上。后來(lái)我搭了一個(gè)RPAworker簡(jiǎn)易自動(dòng)化工具把這套流程交給腳本去跑每天只留一道人工復(fù)核。RPA這個(gè)名字聽起來(lái)很工業(yè)但“簡(jiǎn)易”兩個(gè)字才是關(guān)鍵它不追求像企業(yè)級(jí)RPA平臺(tái)那樣覆蓋所有系統(tǒng)、支持流程編排、帶控制臺(tái)管理只解決一件事——把你在電腦上反復(fù)做的機(jī)械操作用圖像識(shí)別加鍵鼠模擬的方式自動(dòng)跑起來(lái)。這套思路特別適合個(gè)人開發(fā)者、小團(tuán)隊(duì)和兼職做數(shù)據(jù)處理的從業(yè)者你不需要部署服務(wù)器不需要被審批流程卡住甚至不需要太深的編程功底只要機(jī)器上能裝Python把幾行腳本寫得能看懂就行。更重要的是它不依賴被自動(dòng)化系統(tǒng)的任何接口不侵入對(duì)方軟件的改造范圍窗口在旁邊開著它就能干活活干完你只需要盯一眼結(jié)果。這篇文章會(huì)把從技術(shù)選型到實(shí)際落地的完整路徑講清楚包括參數(shù)怎么調(diào)、哪些地方容易翻車、怎么把腳本做得不容易壞。2. 選型先立住簡(jiǎn)易R(shí)PA工具的定位、技術(shù)路線與運(yùn)行環(huán)境2.1 三種自動(dòng)化路線的取舍為什么簡(jiǎn)易工具選“圖像識(shí)別鍵鼠模擬”市面上常見的RPA實(shí)現(xiàn)路線大致有三類。第一類基于UI控件樹通過系統(tǒng)輔助功能接口讀取窗口上的按鈕、輸入框、表格節(jié)點(diǎn)然后直接調(diào)用控件的屬性去賦值或觸發(fā)點(diǎn)擊。這路線的優(yōu)點(diǎn)是定位精準(zhǔn)、速度快但前提是被自動(dòng)化程序必須暴露控件樹很多自繪界面、網(wǎng)頁(yè)里的Canvas區(qū)域、遠(yuǎn)程桌面里的窗口都拿不到穩(wěn)定的控件信息。第二類基于坐標(biāo)腳本也就是提前記住按鈕在屏幕上的像素位置到點(diǎn)就點(diǎn)擊。這玩意兒最脆弱窗口一挪、分辨率一換、屏幕上多彈出個(gè)通知整套腳本就全偏了。坐標(biāo)腳本一般只適合固定工位的演示場(chǎng)景真正用來(lái)跑日常任務(wù)很容易讓人血壓升高。第三類就是RPAworker這類簡(jiǎn)易工具采用的路線用截圖模板匹配來(lái)做視覺定位用鍵鼠模擬來(lái)執(zhí)行動(dòng)作。先截取目標(biāo)按鈕或輸入框的小圖作為模板運(yùn)行時(shí)在屏幕上找到匹配位置再去點(diǎn)擊或輸入。整套方案不需要接觸被控程序內(nèi)部也不依賴絕對(duì)坐標(biāo)窗口只要在屏幕上可見且外觀沒大變基本就能找得到、點(diǎn)得準(zhǔn)。三者的關(guān)鍵差異我用一張表來(lái)梳理路線定位方式環(huán)境要求穩(wěn)定性適用場(chǎng)景控件樹讀取UI控件接口被控程序暴露控件結(jié)構(gòu)高但挑程序標(biāo)準(zhǔn)Windows桌面應(yīng)用坐標(biāo)腳本固定屏幕坐標(biāo)窗口位置分辨率完全固定低演示、一次性任務(wù)圖像識(shí)別鍵鼠模擬截圖模板匹配目標(biāo)窗口可見中上靠閾值與容錯(cuò)補(bǔ)救網(wǎng)頁(yè)、遺留系統(tǒng)、跨平臺(tái)界面我一般會(huì)優(yōu)先推薦第三類做個(gè)人自動(dòng)化理由很直接它不挑系統(tǒng)不要求對(duì)方開放接口連老舊的內(nèi)部系統(tǒng)都能照跑不誤。代價(jià)是稍微吃一點(diǎn)CPU以及需要處理匹配失敗和誤匹配的容錯(cuò)邏輯后面第4章和第5章會(huì)展開講。2.2 簡(jiǎn)易R(shí)PAworker技術(shù)棧的選型理由雖然標(biāo)題叫RPAworker簡(jiǎn)易自動(dòng)化工具代碼實(shí)現(xiàn)上并不需要單獨(dú)寫一個(gè)商業(yè)級(jí)框架?;谒芘堋⒑镁S護(hù)、夠輕量的原則技術(shù)棧一般可以收斂為三個(gè)部分Python做膠水語(yǔ)言開源的計(jì)算機(jī)視覺庫(kù)做模板匹配再加一個(gè)跨平臺(tái)的鍵鼠控制庫(kù)做動(dòng)作執(zhí)行。常見組合中動(dòng)作控制用pyautogui它負(fù)責(zé)模擬鼠標(biāo)移動(dòng)、點(diǎn)擊、拖拽、鍵盤輸入接口簡(jiǎn)單到幾分鐘就能上手自帶屏幕截圖功能還能順便用來(lái)做調(diào)試。圖像匹配用OpenCV的模板匹配方法把預(yù)先截好的按鈕小圖作為模板在實(shí)時(shí)截圖中滑動(dòng)計(jì)算相似度返回最可能的中心坐標(biāo)。中間再加一個(gè)watchdog庫(kù)用于監(jiān)聽文件夾變化當(dāng)有文件落地時(shí)自動(dòng)觸發(fā)流程這樣就不需要人工去點(diǎn)“開始”按鈕。為什么不在這個(gè)組合里引入Selenium或Playwright直接操作瀏覽器因?yàn)镽PAworker定位的是“所見即所得”的桌面級(jí)自動(dòng)化網(wǎng)頁(yè)只是其中一類目標(biāo)。很多內(nèi)部系統(tǒng)登錄后是混合界面一部分頁(yè)面元素在DOM里一部分是嵌入的桌面控件或Flash遺留物單一瀏覽器方案根本覆蓋不全。而圖像識(shí)別方案一視同仁——無(wú)論那部分是HTML、Canvas還是畫出來(lái)的按鈕只要人眼能看見機(jī)器就能按模板去找。2.3 把環(huán)境搭起來(lái)最小依賴安裝與基線驗(yàn)證環(huán)境準(zhǔn)備按以下命令執(zhí)行建議先創(chuàng)建獨(dú)立虛擬環(huán)境避免和別的項(xiàng)目打架。python -m venv rpa_env source rpa_env/bin/activate # Windows下用 rpa_env\Scripts\activate pip install pyautogui opencv-python pillow watchdog這幾步做完依賴就齊了。pyautogui負(fù)責(zé)輸入模擬opencv-python提供cv2.matchTemplate接口pillow是pyautogui截圖時(shí)繞不開的圖像處理底層庫(kù)它依賴PIL的接口watchdog用來(lái)做文件系統(tǒng)監(jiān)聽。安裝完成后先跑一段十秒的驗(yàn)證腳本確認(rèn)pyautogui能正??刂剖髽?biāo)鍵盤import pyautogui import time screen_width, screen_height pyautogui.size() print(f當(dāng)前屏幕分辨率: {screen_width} x {screen_height}) pyautogui.moveTo(screen_width // 2, screen_height // 2, duration0.5) time.sleep(1) pyautogui.click()這段腳本把鼠標(biāo)移到屏幕中心并單擊。如果運(yùn)行正常光標(biāo)會(huì)平滑移動(dòng)過去。邏輯上把這一小段作為基線驗(yàn)證是因?yàn)楹芏喹h(huán)境里pyautogui的鼠標(biāo)控制受權(quán)限限制例如某些遠(yuǎn)程會(huì)話或屏幕設(shè)置影響先在最小范圍確認(rèn)它可用可以避免后面寫了整套流程才發(fā)現(xiàn)底層動(dòng)作發(fā)不出去。參數(shù)上moveTo的duration控制移動(dòng)時(shí)長(zhǎng)0.5秒代表半秒內(nèi)完成移動(dòng)數(shù)值越小動(dòng)作越突兀越大越接近人手移動(dòng)click不帶參數(shù)表示在當(dāng)前光標(biāo)位置按下左鍵。3. 核心實(shí)現(xiàn)從定位、動(dòng)作到流程編排跑通一條真實(shí)任務(wù)3.1 用模板匹配做可靠的目標(biāo)定位基礎(chǔ)代碼與匹配參數(shù)RPAworker里所有“找東西”的操作都建立在模板匹配上。核心思路是先截取目標(biāo)區(qū)域的圖片保存為模板文件程序運(yùn)行時(shí)把屏幕整圖讀進(jìn)來(lái)用cv2.matchTemplate在整圖上滑動(dòng)搜索最相似的位置。這是OpenCV內(nèi)置功能不需要訓(xùn)練任何模型模板圖片大概幾百字節(jié)到幾KB就能發(fā)揮作用。下面這段代碼展示一次完整的定位邏輯把“找圖標(biāo)并返回坐標(biāo)”封裝成一個(gè)可復(fù)用函數(shù)import cv2 import numpy as np import pyautogui def find_template(template_path, confidence0.8): # 截取當(dāng)前屏幕 screen pyautogui.screenshot() # 轉(zhuǎn)為OpenCV使用的BGR格式 screen_cv cv2.cvtColor(np.array(screen), cv2.COLOR_RGB2BGR) # 讀取模板圖片 template cv2.imread(template_path) # 執(zhí)行模板匹配 result cv2.matchTemplate(screen_cv, template, cv2.TM_CCOEFF_NORMED) # 找到最相似位置及其相似度 min_val, max_val, min_loc, max_loc cv2.minMaxLoc(result) if max_val confidence: h, w template.shape[:2] # 返回模板中心坐標(biāo) center_x max_loc[0] w // 2 center_y max_loc[1] h // 2 return center_x, center_y, max_val return NonematchTemplate的TM_CCOEFF_NORMED是歸一化相關(guān)系數(shù)匹配結(jié)果值域在-1到1之間越接近1代表越相似。confidence參數(shù)設(shè)置為0.8意思是相似度不低于80%才認(rèn)為找到目標(biāo)。這個(gè)值不是固定不變的后面講參數(shù)時(shí)會(huì)細(xì)說(shuō)。取中心坐標(biāo)是為了讓后續(xù)點(diǎn)擊動(dòng)作落在模板區(qū)域正中央避免點(diǎn)到模板邊緣導(dǎo)致誤觸。如果函數(shù)返回None說(shuō)明屏幕上沒找到目標(biāo)調(diào)用方就應(yīng)該進(jìn)入等待或重試邏輯而不是直接點(diǎn)擊。需要注意的一點(diǎn)是模板圖片要截取目標(biāo)物體的“穩(wěn)定外觀”。例如一個(gè)按鈕圖標(biāo)盡量只截按鈕主體不要帶上背景的漸變紋理或旁邊的文字否則背景一變匹配率就暴跌。截圖分辨率要和運(yùn)行環(huán)境一致建議模板和屏幕都在同一個(gè)縮放比例下截取后面遇到縮放的坑會(huì)再提。3.2 動(dòng)作模擬的細(xì)節(jié)點(diǎn)擊、輸入、快捷鍵與等待策略定位到目標(biāo)之后動(dòng)作層要處理的主要是四類操作移動(dòng)并點(diǎn)擊、鍵盤輸入、快捷鍵組合、流程之間的等待。RPAworker在動(dòng)作層會(huì)封裝幾個(gè)常用函數(shù)讓主流程代碼看起來(lái)像在描述自然語(yǔ)言步驟。import pyautogui import time import random def smart_click(x, y): # 略微加入隨機(jī)偏移避免每次點(diǎn)擊都在同一個(gè)像素點(diǎn) offset_x random.randint(-3, 3) offset_y random.randint(-3, 3) pyautogui.moveTo(x offset_x, y offset_y, duration0.2) pyautogui.click() def type_text(text, interval0.05): # 逐字符輸入模擬人工打字節(jié)奏 for char in text: pyautogui.write(char, intervalinterval) def press_hotkey(*keys): # 組合快捷鍵例如 press_hotkey(ctrl, s) pyautogui.hotkey(*keys) def wait_for(target_func, timeout15): # 輪詢等待目標(biāo)出現(xiàn)超時(shí)拋異常 start time.time() while time.time() - start timeout: result target_func() if result is not None: return result time.sleep(1) raise TimeoutError(f{target_func.__name__} 在 {timeout} 秒內(nèi)未出現(xiàn))smart_click中加入隨機(jī)偏移是血淚經(jīng)驗(yàn)?zāi)承┫到y(tǒng)會(huì)記錄操作軌跡如果每次點(diǎn)擊都在完全相同的像素點(diǎn)很容易觸發(fā)風(fēng)控或操作審計(jì)告警。type_text逐字符帶間隔寫入是因?yàn)閜yautogui.write默認(rèn)一次性輸出整串文本很多網(wǎng)頁(yè)輸入框會(huì)直接吞掉部分字符或觸發(fā)校驗(yàn)這里interval控制每個(gè)字符的間隔秒數(shù)設(shè)0.05秒時(shí)速度接近普通人輸入既快又不容易丟字。wait_for是整套流程的節(jié)拍器RPA最大的翻車點(diǎn)往往是流程跑得太快——界面還沒反應(yīng)過來(lái)就執(zhí)行下一步所以“等待目標(biāo)出現(xiàn)”比“固定sleep幾秒”要可靠得多界面卡頓時(shí)固定sleep直接失效而輪詢能自動(dòng)延長(zhǎng)等待。3.3 用watchdog監(jiān)聽文件夾讓流程自己?jiǎn)?dòng)很多自動(dòng)化任務(wù)的觸發(fā)方式不是“手動(dòng)運(yùn)行”而是“有新文件丟進(jìn)來(lái)就開工”。常見場(chǎng)景是業(yè)務(wù)人員把導(dǎo)出的Excel報(bào)表放到一個(gè)約定文件夾RPA腳本監(jiān)測(cè)到新文件后自動(dòng)開始處理。這里用watchdog實(shí)現(xiàn)一個(gè)輕量監(jiān)聽器比寫死循環(huán)輪詢要省資源得多。from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler import time class RpaJobHandler(FileSystemEventHandler): def on_created(self, event): # 只處理文件創(chuàng)建事件跳過目錄 if event.is_directory: return print(f檢測(cè)到新文件: {event.src_path}) # 這里調(diào)用實(shí)際的處理流程例如 process_file(event.src_path) def start_monitor(path./jobs): observer Observer() handler RpaJobHandler() observer.schedule(handler, path, recursiveFalse) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()on_created回調(diào)只在有新文件創(chuàng)建時(shí)觸發(fā)src_path給出完整路徑。之所以用事件監(jiān)聽而不是寫while輪詢是因?yàn)檩喸冇泄潭ǖ膾呙栝g隔文件處理時(shí)間會(huì)被延長(zhǎng)事件監(jiān)聽是操作系統(tǒng)層面通知實(shí)時(shí)性更好CPU占用幾乎為零。recursiveFalse表示不遞歸監(jiān)聽子目錄這能避免程序自己往目錄里寫輸出文件時(shí)再次觸發(fā)事件造成無(wú)限循環(huán)——這一點(diǎn)非常關(guān)鍵輸出目錄和監(jiān)聽目錄必須分開或者輸出文件名做排除處理。正式使用中我一般會(huì)把監(jiān)聽目錄和輸出目錄分開成兩個(gè)文件夾這樣監(jiān)聽器只看到輸入文件處理完畢后把結(jié)果寫去另一個(gè)目錄互不干擾。3.4 拼裝一個(gè)最小但完整的流程把三個(gè)模塊擰成一股繩前面三個(gè)模塊單看都簡(jiǎn)單但串起來(lái)就能形成一個(gè)完整的自動(dòng)化閉環(huán)。拿一個(gè)典型任務(wù)舉例每天把某個(gè)報(bào)表軟件導(dǎo)出的CSV文件自動(dòng)合并、填入網(wǎng)頁(yè)表單并提交。整個(gè)流程用偽代碼級(jí)別就能表達(dá)清楚。# run_job.py from finder import find_template from actions import smart_click, type_text, wait_for import pyautogui def process_file(file_path): # 1. 打開目標(biāo)網(wǎng)頁(yè)或業(yè)務(wù)系統(tǒng) pyautogui.hotkey(ctrl, t) type_text(http://internal-report.example) pyautogui.press(enter) # 2. 等待登錄按鈕出現(xiàn) login_btn wait_for(lambda: find_template(templates/login_btn.png)) smart_click(*login_btn[:2]) # 3. 定位文件上傳區(qū)域填入待處理文件路徑 upload_area wait_for(lambda: find_template(templates/upload_area.png)) smart_click(*upload_area[:2]) type_text(file_path) # 4. 點(diǎn)擊提交并等待成功頁(yè)面元素 submit_btn wait_for(lambda: find_template(templates/submit_btn.png)) smart_click(*submit_btn[:2]) ok_icon wait_for(lambda: find_template(templates/success_icon.png), timeout30) print(f文件 {file_path} 處理完成) if __name__ __main__: start_monitor(process_file)上面的代碼結(jié)構(gòu)上很清晰find_template負(fù)責(zé)視覺定位smart_click和type_text負(fù)責(zé)動(dòng)作執(zhí)行wait_for作為流程節(jié)拍器。邏輯上每個(gè)步驟之間都做了目標(biāo)出現(xiàn)校驗(yàn)其中任何一步失敗都會(huì)在wait_for處拋出TimeoutError外層捕獲異常后可以歸檔失敗文件、發(fā)告警通知。參數(shù)上有一個(gè)細(xì)節(jié)容易被忽視type_text填入文件路徑時(shí)路徑中如果有反斜杠建議先做一次路徑分隔符替換因?yàn)閜yautogui.write對(duì)反斜杠的處理在不同鍵盤布局下有差異。一般我會(huì)在拼接內(nèi)容前加一句 path.replace(\, /)犧牲一點(diǎn)Windows路徑原生化換取輸入環(huán)節(jié)的穩(wěn)定。4. 邊界參數(shù)與可靠性把腳本從“能跑”調(diào)到“長(zhǎng)期能跑”4.1 匹配置信度與多目標(biāo)策略什么時(shí)候該用0.9什么時(shí)候0.7就夠了confidence參數(shù)的選擇不是拍腦袋。目標(biāo)元素外觀越穩(wěn)定、屏幕環(huán)境越干凈閾值可以拉得越高。例如登錄界面上一個(gè)位置固定的按鈕背景是純色模板匹配的峰值通常在0.95以上此時(shí)把confidence設(shè)為0.9可以有效避免誤點(diǎn)。但如果目標(biāo)元素是表格里的某一行標(biāo)題欄包含大量相似的行結(jié)構(gòu)多目標(biāo)并存時(shí)最高相似度可能只有0.75左右閾值設(shè)得太高就會(huì)一直找不到。多目標(biāo)場(chǎng)景是另一個(gè)常見需求窗口里可能有多個(gè)相同的“刪除”按鈕你希望點(diǎn)的是某一行邊上的。cv2.matchTemplate直接返回的是全圖最高分的位置但對(duì)多目標(biāo)情況需要借助閾值化加連通區(qū)域分析來(lái)做。def find_all_templates(template_path, confidence0.8): screen pyautogui.screenshot() screen_cv cv2.cvtColor(np.array(screen), cv2.COLOR_RGB2BGR) template cv2.imread(template_path) result cv2.matchTemplate(screen_cv, template, cv2.TM_CCOEFF_NORMED) locations np.where(result confidence) points [] h, w template.shape[:2] for pt in zip(*locations[::-1]): center (pt[0] w // 2, pt[1] h // 2) points.append(center) return points這段代碼返回所有相似度超過閾值的目標(biāo)中心點(diǎn)。注意直接用np.where會(huì)把同一個(gè)目標(biāo)附近的重疊區(qū)域全部算進(jìn)來(lái)同一按鈕周圍可能擠出十幾個(gè)點(diǎn)。實(shí)際使用時(shí)要再做一步去重按最小距離合并聚類通常設(shè)置兩個(gè)中心點(diǎn)距離小于模板寬度的一半就視為同一個(gè)目標(biāo)。這個(gè)去重邏輯建議在流程里實(shí)現(xiàn)否則點(diǎn)擊“第二個(gè)刪除按鈕”時(shí)可能因?yàn)橹貜?fù)點(diǎn)導(dǎo)致鼠標(biāo)在一個(gè)按鈕上劃來(lái)劃去。4.2 超時(shí)、重試與失敗歸檔讓腳本具備自我保護(hù)意識(shí)線上長(zhǎng)期跑的腳本最怕的不是功能寫錯(cuò)而是某個(gè)步驟卡住后無(wú)限等待或者失敗后把數(shù)據(jù)弄臟。RPAworker的做法是給每一步加超時(shí)超時(shí)后重試有限次數(shù)最終失敗則把輸入文件移動(dòng)到failures目錄并記錄日志而不是留在原地。import time import shutil from pathlib import Path def run_with_retry(action_func, retries3, timeout15): last_error None for attempt in range(retries): try: result wait_for(action_func, timeouttimeout) return result except TimeoutError as e: last_error e print(f第 {attempt 1} 次嘗試失敗剩余 {retries - attempt - 1} 次) time.sleep(2) raise last_error def archive_failed_file(file_path, reason): fail_dir Path(./failures) fail_dir.mkdir(exist_okTrue) dest fail_dir / Path(file_path).name shutil.move(file_path, dest) print(f失敗歸檔: {file_path} - {dest}原因: {reason})重試邏輯里每次間隔2秒是為了給界面留出恢復(fù)時(shí)間部分卡頓是瞬時(shí)抖動(dòng)兩秒后可能就恢復(fù)了。歸檔失敗文件比直接刪掉更穩(wěn)妥方便日后復(fù)盤或手動(dòng)補(bǔ)跑。這里有一個(gè)設(shè)計(jì)習(xí)慣值得強(qiáng)調(diào)腳本寧可在失敗時(shí)把流程停下來(lái)也不要嘗試用猜測(cè)去處理模糊情況。例如匹配到多個(gè)目標(biāo)無(wú)法決定點(diǎn)擊哪個(gè)時(shí)直接歸檔失敗讓人來(lái)救場(chǎng)八成比自動(dòng)賭一個(gè)要安全。4.3 執(zhí)行留痕日志、屏幕截圖與每步動(dòng)作證據(jù)不用等到出錯(cuò)才后悔不截圖。我習(xí)慣在每個(gè)關(guān)鍵動(dòng)作后保存一條帶時(shí)間戳的日志在匹配到目標(biāo)時(shí)順手截一張全屏圖存檔。這樣一旦流程跑歪可以從截圖里回放當(dāng)時(shí)界面到底長(zhǎng)什么樣。import logging import pyautogui from datetime import datetime logging.basicConfig( filenamerpa_run.log, levellogging.INFO, format%(asctime)s [%(levelname)s] %(message)s ) def log_with_screenshot(step_name): ts datetime.now().strftime(%Y%m%d_%H%M%S) shot_path f./screenshots/{step_name}_{ts}.png pyautogui.screenshot().save(shot_path) logging.info(f步驟 {step_name} 完成截圖: {shot_path})每個(gè)步驟留一張截圖看似占磁盤空間實(shí)際上單張PNG截圖大約幾百KB一天跑幾十個(gè)步驟也就幾十MB完全可接受。留痕的價(jià)值在排查問題時(shí)才能體現(xiàn)某天早上有三筆單子沒處理回看日志和截圖能直接定位卡在哪一步是按鈕沒加載出來(lái)還是彈窗擋了道。這比對(duì)著屏幕發(fā)呆猜原因高效得多。日志級(jí)別建議分級(jí)記錄正常流程打INFO匹配失敗打WARNING歸檔失敗打ERROR分析時(shí)直接按級(jí)別過濾。5. 避坑指南RPAworker跑不起來(lái)、跑不穩(wěn)的五個(gè)典型坑5.1 遠(yuǎn)程桌面會(huì)話下鼠標(biāo)鍵鼠動(dòng)作失效現(xiàn)象腳本在本機(jī)運(yùn)行一切正常但放到遠(yuǎn)程桌面環(huán)境里掛著的時(shí)候動(dòng)作執(zhí)行一會(huì)兒就停了pyautogui截圖看起來(lái)是正常的但點(diǎn)擊沒有反應(yīng)。原因鎖屏或斷開的遠(yuǎn)程桌面會(huì)話里操作系統(tǒng)不會(huì)渲染實(shí)際的桌面畫面。pyautogui的截屏函數(shù)拿到的可能是純色或上一幀的靜態(tài)圖鍵鼠模擬事件也會(huì)被系統(tǒng)丟棄因?yàn)樽烂嬉呀?jīng)處于不可交互狀態(tài)。解決讓自動(dòng)化任務(wù)跑在物理機(jī)或始終保持活動(dòng)狀態(tài)的會(huì)話里。如果確實(shí)需要遠(yuǎn)程掛機(jī)可以嘗試用虛擬顯示器或保持遠(yuǎn)程桌面窗口不被最小化同時(shí)設(shè)置系統(tǒng)電源計(jì)劃為“從不休眠”。更穩(wěn)妥的做法是任務(wù)調(diào)度器注冊(cè)成交互式任務(wù)保證會(huì)話處于激活狀態(tài)。這是一個(gè)硬約束不是靠代碼能繞過去的。5.2 屏幕縮放比例不一致導(dǎo)致匹配全偏現(xiàn)象模板匹配在本機(jī)分辨率下準(zhǔn)確率很高換到同事機(jī)器上同一個(gè)模板再也找不到或者位置偏了一大截。原因Windows顯示設(shè)置里縮放比例不同例如一臺(tái)是100%另一臺(tái)是125%。pyautogui的截圖和坐標(biāo)基于物理像素如果系統(tǒng)做了縮放拉伸截圖實(shí)際尺寸和邏輯坐標(biāo)之間會(huì)出現(xiàn)換算偏差模板里記錄的像素位置和運(yùn)行時(shí)屏幕內(nèi)容就不對(duì)應(yīng)了。解決所有運(yùn)行RPAworker的機(jī)器統(tǒng)一顯示縮放比例。如果實(shí)在無(wú)法統(tǒng)一需要把截圖分辨率做歸一化處理在匹配前將屏幕截圖縮放為與模板采集時(shí)相同的DPI設(shè)定。這個(gè)方案能做但復(fù)雜最省事還是統(tǒng)一環(huán)境。另外注意DPI縮放不要設(shè)“自定義”級(jí)別預(yù)設(shè)的100%、125%、150%經(jīng)過的路徑不同模板匹配的偏差模式完全不一樣。5.3 中文輸入法導(dǎo)致文本輸入錯(cuò)亂現(xiàn)象type_text輸入中文或混合文本時(shí)輸入框里出現(xiàn)拼音字母、英文字母甚至觸發(fā)輸入法聯(lián)想彈窗把后續(xù)流程全部打亂。原因pyautogui.write在Windows上通過模擬鍵盤事件逐字符輸入當(dāng)系統(tǒng)處于中文輸入法狀態(tài)時(shí)按鍵會(huì)被輸入法攔截并轉(zhuǎn)換為拼音組合而不是直接上屏漢字。解決在輸入前切換到英文輸入法。常見做法是模擬快捷鍵切換輸入法然后發(fā)送一個(gè)英文輸入事件把狀態(tài)徹底切到英文模式。如果系統(tǒng)里裝了三方輸入法快捷鍵可能不是默認(rèn)的CtrlSpace需要提前確認(rèn)。另一個(gè)更可靠的方案是改用剪貼板粘貼把文本寫入剪貼板然后發(fā)送CtrlV完全繞開字符級(jí)鍵盤模擬。import pyperclip import pyautogui def type_text_via_clipboard(text): pyperclip.copy(text) pyautogui.hotkey(ctrl, v)parampyperclip提供跨平臺(tái)的剪貼板讀寫接口。這個(gè)方案對(duì)中文、特殊字符、換行符都友好粘貼操作是一次整體事件不逐字拆解也就不存在輸入法干擾的問題。我現(xiàn)在的做法是默認(rèn)走剪貼板只有目標(biāo)系統(tǒng)禁止粘貼時(shí)才回退到逐字符輸入。5.4 按鈕是動(dòng)態(tài)渲染的模板匹配峰值忽高忽低現(xiàn)象流程跑了幾次之后某個(gè)按鈕偶爾找不到。人工看截圖能清楚看到按鈕就在那里但相似度分?jǐn)?shù)就是達(dá)不到閾值。原因不少現(xiàn)代網(wǎng)頁(yè)的按鈕有hover、focus、active等狀態(tài)鼠標(biāo)經(jīng)過時(shí)顏色會(huì)加深、邊框會(huì)發(fā)光。模板里截的是靜態(tài)灰底按鈕運(yùn)行中按鈕正好處于高亮狀態(tài)或者背景動(dòng)畫恰好擋住了一部分就會(huì)導(dǎo)致匹配分?jǐn)?shù)下降。解決模板截取時(shí)盡量選按鈕的最穩(wěn)定外觀狀態(tài)例如默認(rèn)灰色底而不是hover后的高亮色。如果按鈕位置固定還可以考慮退而求其次截取按鈕旁邊的靜態(tài)文案或區(qū)域圖標(biāo)作為錨點(diǎn)因?yàn)槲陌副劝粹o顏色穩(wěn)定得多。匹配閾值也不要卡死在0.9給動(dòng)態(tài)渲染留一點(diǎn)余量一般0.8上下比較合理。5.5 殺毒軟件攔截鍵鼠操作或截屏權(quán)限現(xiàn)象腳本運(yùn)行到某個(gè)動(dòng)作時(shí)莫名中斷有些機(jī)器上直接報(bào)權(quán)限錯(cuò)誤有些運(yùn)行日志什么都沒有就停了。原因部分安全軟件會(huì)把自動(dòng)化工具模擬的鍵鼠事件識(shí)別為可疑行為直接阻止進(jìn)程級(jí)別的輸入注入。截屏操作在某些帶數(shù)據(jù)防泄漏策略的環(huán)境下也會(huì)被禁止導(dǎo)致pyautogui.screenshot返回黑屏或異常。解決先把腳本加入殺毒軟件的白名單尤其是對(duì)Python解釋器進(jìn)程和腳本目錄放行。如果企業(yè)環(huán)境有統(tǒng)一安全策略需要IT側(cè)配合開放權(quán)限。這個(gè)坑不好從代碼層面完全繞過如果目標(biāo)機(jī)器安全策略很嚴(yán)需要考慮換一種自動(dòng)化方式或者把任務(wù)放到不受監(jiān)控的獨(dú)立環(huán)境里跑。遇到權(quán)限錯(cuò)誤時(shí)優(yōu)先查系統(tǒng)日志里的進(jìn)程攔截記錄比反復(fù)調(diào)代碼效率更高。6. 進(jìn)階技巧把固定流程升級(jí)成可配置的規(guī)則驅(qū)動(dòng)任務(wù)前面講的是把一條流程寫死在代碼里實(shí)際用一段時(shí)間后你會(huì)發(fā)現(xiàn)需求經(jīng)常變可能是上傳按鈕的位置變了可能是要處理的文件類型多了一種也可能是填表字段順序調(diào)整了。每次都要改代碼并重新部署太麻煩。更實(shí)用的做法是把“步驟順序”和“目標(biāo)元素模板”拆成配置代碼只保留一個(gè)通用的執(zhí)行引擎。做法并不復(fù)雜準(zhǔn)備一個(gè)JSON文件描述流程步驟每一步包含操作類型、模板文件名、輸入內(nèi)容、超時(shí)時(shí)間這幾個(gè)字段。執(zhí)行引擎讀取配置后按順序調(diào)用對(duì)應(yīng)動(dòng)作函數(shù)。例如[ {op: open_url, url: http://internal-report.example}, {op: click, template: login_btn.png, confidence: 0.8, timeout: 15}, {op: type, template: username_input.png, text: admin, via_clipboard: true}, {op: type, template: password_input.png, text: ****, via_clipboard: true}, {op: click, template: submit_btn.png}, {op: wait_fixed, seconds: 2}, {op: click, template: upload_area.png}, {op: type, template: file_path_input.png, text: {input_file}, via_clipboard: true}, {op: click, template: confirm_btn.png} ]執(zhí)行引擎里用一個(gè)字典把op名稱映射到具體函數(shù)再用一個(gè)循環(huán)順序處理。這里有個(gè)設(shè)計(jì)要點(diǎn){input_file}這類占位符在執(zhí)行時(shí)統(tǒng)一替換成本次任務(wù)的真實(shí)數(shù)據(jù)這樣同一個(gè)配置可以反復(fù)處理不同文件不需要為每個(gè)文件改一行代碼。模板文件名指向模板目錄下的PNG圖片新增界面元素時(shí)只需要截一張圖放進(jìn)去不用動(dòng)代碼。這個(gè)技巧帶來(lái)的效果是改流程變成改配置、換模板幾行JSON加一張截圖就能上線。穩(wěn)定性上反而比硬編碼更好維護(hù)因?yàn)闃I(yè)務(wù)人員自己也能看懂配置里每一步在干什么溝通成本大幅下降。配合第4章的重試與歸檔機(jī)制整個(gè)腳本更像是流水線上的一臺(tái)小設(shè)備而不是某一次性的手工腳本。我自己的使用習(xí)慣是每個(gè)流程至少留一套調(diào)試模板和一套運(yùn)行模板調(diào)試模板帶明顯邊框方便肉眼確認(rèn)匹配位置。配完流程先用一次真實(shí)文件小跑看截圖日志確認(rèn)每一步都點(diǎn)對(duì)地方再交給定時(shí)任務(wù)長(zhǎng)期跑。長(zhǎng)期跑的過程中每周扒一次日志和截圖目錄觀察匹配分?jǐn)?shù)有沒有緩慢下降的趨勢(shì)一旦發(fā)現(xiàn)有下滑跡象提前換模板或調(diào)閾值比等到跑失敗了再救要省心得多。希望這套方案幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
无码聚合| 视频在线观看免费一区二区三区 | 超碰AV在线| 亚洲国产一级黄色视频| 日韩无码AB| 亚洲乱熟女一区二区三区大香蕉| 蜜臀久久久99久久久久 | 青青草在线成人视频| 国产精品久久久久亚洲av| 97Ai亚洲| 亚洲91大片| 先锋精品av色鲁| 无码久久国产| 熟妇色99| 快播久久人人aV| 97国产色综合| 欧美在线干| 女性91网站| 久草成人影片| 呦女网站| 毛片麻豆91糖心精品毛情片| 神马久久久久久久久久| 日韩/97| 丁香六月综合激情| 美女一区二区国产精品| 中国一级特黄大片护士| 黄片www视频免费| 久久动漫精品视频这里只有精品| 亚洲综合一| 国产精品 亚洲情色| 男人天堂一区二区| 日韩精品一区的| 亚洲精品xxx| 草莓精品视频在线免费观看| 日韩激情无码影院| 国产精品蜜臀久久久久无码AV| 欧美性性性| 密臀成人视频久久久| 少妇内射www在线观看视频| 在线可观看的黄色网址| 强免费黄色网址| 国产又爽又黄| 色五月丁香五月| 欧美日韩性爱无码| 日本视频一区二区三区| 黄色AAAAAAAAAAA大片| 青草精品视频-日本久久久久网站| AV99热18这里只有精品| 97国伦国色| 天美麻豆精品视频99| 怡红院视频在线| 九九热精品视频在线观看| 亚洲日韩美女中文字幕乱| 国产精品欧美日韩久久| 国产亚州高清国产拍精| 婷婷久热| 日本三级久| 亚洲欧美综合区自拍另类 | 日韩性爱电影一区| 第四色奇米影视777| 亚洲国产ⅴ高清在线观看| 1769一区| 亚洲一级特黄大片在线播放91| 国产一级操B视频| 欧美三级中文字幕hd| 蜜桃av综合网发布| 日本高清电影欧美色图| 色狠狠综合噜一二三区| 精品九九淫乱男| 日韩精彩视频| 亚洲另类天堂| 精品成人亚洲午夜电影| 美女自卫慰黄网站免费| 夜夜爽爽爽| 精品久一区免费| 五十路熟女工口| 岛国AV一区二区电影| 91爱综合| 亚洲素人网| 97精品全部| 亚洲日韩精品一区二区| 飘花国产午夜精品不卡| 国产又粗又又黄又猛| 97久久久久久久精| 99热婷婷一区二区三| 日本一道在线播放高清| 国产精品一区二区 尿失禁| 婷婷综合激情| 欧洲精品久久| 无码人妻一区二区三区色欲aⅴ| 在线一道啪| 日本天天操| 天天综合网AV91| 夜夜夜爽www精品视频| 91无码西班牙视频在线| 亚洲欧美激情在线视频| 嗯嗯啊啊用力视频免费| 久久精品国产97欧美精品亚洲 | 五月天婷婷社区| 永久免费观看的毛片的网站| 国产亚洲日本精品在线| 久污| 日韩欧美午夜一区二区| 中文字暮97| 欧美综合色综合| 黄色大片免费在线| 日韩av熟女一区二区三区成人| 啊啊啊男女| 色综合一区二区三区| 夜夜影视四色| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 国产91专区| 97精品97久久| 亚洲精品乱码线路中文字幕| 国产精品秘 福利姬在线观看| 好看的91视频| 国产精品不卡一区二区电影| 亚洲精品视频二区| 欧美天天综合网版| 婷婷丁香五月综合| 校园春色AV天堂| 乱伦av麻豆| 色诱中文字幕| 很很操在线| 九九热免费国产视频婷婷伊人| 激情小说亚洲视频| 亚洲最新a在线观看| 国产欧美一区激情交| 亚洲欧美在线综合| 国产第25页在线观看| 欧美 亚洲 另类 综合| 色在线综合| 3d成人精品一区二区| 亚洲中文字幕熟女少妇一区二区| 粉嫩久久久久| 亚洲视频二区| 午夜无码精品免费看性色| 久久婷婷在线观看视频| 欧洲精品一级二级精品综合视频综合| 亚洲日韩一区电影| 精品在线蜜臀| 一二三区在线| 色网色网色网色网色网色| 夜夜夜久久| .精品人妻一区二区三| 久久久艹艹艹| 性久久| 中文字幕97色| 大香蕉久| 人妻色偷色噜| 色五月激情AV在线| 97色色视频| 97亚洲在线| 中日韩欧美精品无码AⅤ一区二区| 九九九九九九九九九九精品视频| 国产真实野战在线视频| 麻豆天美一区二区| 国产一区二区久久| 亚洲天堂热| 精品视频一二三中文| 亚洲午夜免费狠狠干| 五月婷亚洲精品天堂| 亚洲第一男人天堂| 九九九九九九九精品视频| 国产高清自拍视频| 免费99精品国产自在在线| 国产成人bd在线观看| 天天综合青苹果| 青青草吊丝| 精品伊人久久久大香线蕉小说| 色悠悠伊人网五月天| 混色激情av| 亚洲伊人a线观看视频| 97在线欧| 伊人网在线观看| 丁香五月成人| 亚洲三级网址久久最新| 韩国成人精品久久久免费看| 日日操夜夜操天天操免费观看麻豆| 国产无遮挡| 日韩精品人妻一| 男人的天堂免费| 青青草精品| 日本污ww视频网站| 亚洲欧美色图片| 91n免费处女| 伊人91| 家庭乱伦国产| 成全动漫视频观看免费下载| 日日躁夜夜躁狠狠躁超爽| 超碰97玖玖爱| 亚洲精品骚逼| 亚洲偷拍自拍在线视频| 黄色激情电影在线观看| 国产精品又黄又猛又粗| 亚洲国产日韩精品久久久| 欧美情色贴图| 羞涩视频| 啊啊啊骚| 东京热不卡视频| www鬼畜国产男人的天堂| 在线观看国产黄色| 一级啊性爱在线视频| 日韩簧片免费看| 日韩丨制服丨中文|在线| 久久综合99| 亚洲中文字幕精品久久久久久直播| 国产黄色在线播放观看| 91性情| 久久久久96| 日本不卡一区二区三区| 一区二区国产视频在线观看| 麻豆精品A片免费观看| 激情五月天色播| 亚洲成A∨人影院在线欢看| ji熟女.com| www久久国产精品| 亚洲资源站| 99热婷婷一区二区三| 色偷偷综合91久久噜噜| 综合色啪| 91黑人无码激情在线| 国产精品色| 日韩欧美一级特黄大片| 国产女人极品高潮毛片| 日韩欧美经典在线观看| 色婷婷视频| 精品国产久热在线观看| 97香焦色区| 精品精品精品| 校园春色中文字幕AV| 麻豆精品三区视频| 夜夜高潮夜夜爽夜夜爱爱一区| 久射吧| 欧色综合| 日本高清加勒比| 一区超碰一区| 日产操逼| AⅤ片水多多| 久久国产精品视频| 欧美亚洲色图另类国产| 日日夜夜精品视频| 日韩国产精品人妻无码久久久| 久久久艹艹艹| 国产自制av蜜乳| 亚洲色婷婷久久91| 亚洲欧洲日韩天堂av| 秋霞Av理论一级在线| 不卡中文字幕aⅴ在线| AV天堂国产| h无码动漫在线观看| 国产精品免费视频人成| 黄页网站成人免费| 探花精品 一区二区| 综合伊人网12色| 日韩99精品视频综合区| 五月婷婷丁香六月| 欧美少妇性乱| 亚洲图片另类| 操逼逼福利视频| 久久精品一区二区三区不卡| 日韩综合97P| 人人操人人肉久久精品| 亚洲av成人精品一区| 97视频免费播放| 九热超碰| 人人看人人爰人人操| 人人色人人操在线| 欧美第二页午夜| 国内一区二区免费| 免费黄色片子| 超碰97欧美日韩| 俞拍久久国应视频| 亚洲一欧洲中文字幕在线| 人妻-91porn| 影音综合网| 亚州高清AV| 黄色片一区二区三区四区五区| 999国产精品999| 69视频福利导航| 肥臀熟女一区二区三区视频| 日韩av不卡在线观看| AV一二区| 新亚洲无码| 97超碰超碰| 乱伦日本色图AⅤ| 熟女欧美日韩综合婷婷| 国产日韩中文字幕欧美| 国产一级内射无挡观看| 骚乳在线| 欧姜老司机| 牛黄色久午久| 欧美国产成人在线| 日韩免费高清大片在线| 骚乳在线| 欧美另类色| 亚洲猛交| 五月丁香色情| 国产精品一区二区麻豆| 免费精品福利在线观看| 欧美精品偷拍| 综合国产影视三级| 超碰碰激情97+久| 日韩视频精品在线观看| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 青草视频人妻在线观看| 多毛小伙内射老太婆| 欧美1区二区三区公司| 日韩免费福利在线观看| 黄色视频特级毛片| 91亚洲丝袜熟女| 国产精品岛国片在线观看| 久久婷婷在线观看视频| 26uuu成人影片| 亭亭丁香激情| 色综合V| 色五月第四色| 久久久久久久国产视频| 91国产伊人大香蕉| 长长久久88视频| 男人的天堂99| 黄色乱论网站| 久久久久人妻二区精品叶可怜| 操操操操操操| 日操粉逼逼| 好色美女九七第一页| 国产人妻天天干精品| 青青草影视蜜久久| 天堂蜜桃无码视频一区二区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 九九热免费在线国产视频伊人五月| 97精品全部| www.狠狠| 都市久久精品激情亚洲| 蜜桃臀久久| 97色婷婷| 少妇高潮流水av免费| 99国产精品久久久在线播放| 国产AV高清AV无码| 欧美裸体美女日麻屄| 国产视频一区二区三区久久亚洲天堂| 巨爆乳一区二区爆乳区| 九热中文字幕| 永久免费发布性爱网| 伊人991| 丁香五月电影| 天天射天天| 激情四射熟女丝袜| 亚洲精品丝袜| 天天看,天天做| 97精品国产精品免费观看| 秋霞一级视频在线观看免费| 黄色免费网| 男人的天堂久久狠| 五月婷婷hd| 大香蕉黄色一区| 蜜臀久久99精品久久久| 蜜桃臀av一区二区| 啊嗯好大视频在线观看| 成人性爱高清视频免费看| 大香蕉狠狠爱| 制服丝袜第二页| 日本大片日本一区二区免费高清| 日日骚精品视频| 欧美日韩*字幕一区| AV 少妇 人妻 偷拍| 影音先锋新男人| 男人久久天堂| 美女黄色91| 69精品人人人人| 久久精视频美日韩在线视频| 天天影视色香欲综合网小说| 黑人性欧美| 粉嫩av一区二区三区四季| 欧美后进式| 97国产高清视频在线观看| 国产精品内射婷婷一级二| 欧美第五页| 天堂射| 青青草日本无码| 中文字幕成人| 加勒比五月天| 欧美日韩大陆黑人少妇99| a网站免费观看| 国产精品嫩草影院免费| 国产性感在线观看| 又黄又爽在线观看视频 | 99久久无码| 久热最新在线杭州| 久久老熟女| 欧美九一精品久久久熟妇| 亚州综合色图| 久久综合久色欧美综合狠狠| 性爱1区| 高清国产成人无码| 啊啊啊水好多| 69一区二区| 亚洲风情在线观看| site:sinbotex.com| 密臀在线视频| 91制服丝袜中文字幕| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产无码成人无码| 99re在线| 性久久久| 91在线精品| 在线播放免费av福利片| 天天做日日做| 操逼逼无码| 婷婷91| 天天日少妇逼AV| 婷婷香蕉欧美在线一区二区三区| 超碰 97国产熟女| 97色在线观看| 99黄页网站| 国产AV线| 国产人妻久久精品一区二区三区| 大香蕉狠狠爱| 大二网站亚洲| 欧日a| 五月色网| 91亚洲欧美色图| 欧美狠狠操| 亚洲精品丝袜| 加勒比av网| 淫淫综合网| 午夜亚洲WWW湿好大| 黄色区免费观看中文字幕| 欧美黄片视频在线观看免费 | 蘋果手機免費看成人Av| 超碰久在线天天做| 日韩成人人妻网站| 亚洲少妇免费视频\| 97日视频| 超碰97久久国| 97爱b| 国产嫩草精品A88AV在线| 黑人精品久久97| 久久日本熟妇熟色高清| 伊人久久亚洲色欲综合网站| 好爽视频在线观看| 亚洲天堂中文字| 丁香五月综合| 91在线/欧洲| 欧美精品一二三| 国产精品盗摄 偷窥盗摄| 久久亚洲精品成人av| 91n美女视频| 亚洲熟女乱色一区二区三区久久久 | 九九热超碰97亚洲最新香蕉| 中文字幕午夜精品久久久| 久久免费少妇| 国产精品成人在线| 欧亚第一综合网| 亚洲色图 综合| 久久精品一区二区三区四区五区| 色爱三区| 91爰爱欧美| 无码人妻一区二区三区免费九色| 懂色AV蜜臀无码精品APP | 理论久久婷婷网 8| 亚洲性综合11| 亚洲精品天堂久久A∨51成人漫| 五月激情天| 亚洲脚交| 国产女人操逼视频| 2017大香蕉国产精品久久| 日本天天干天天日一区| 久久亚洲AV无码白度| 五月丁香综合啪啪| 亚洲少妇综合在线播放| 夜夜操91744565| 欧美97爱| 五月天婷婷成人网| 97超碰欧美中文字幕| 97青青操视频| 人妻夜夜爽天天爽麻豆三区网站 | 亚洲色诱惑| 欧美色视频在线| 麻豆三极片| 天天操人人操骚逼网站| 久久久亚洲精品电影免费看| 中文字幕亚洲欧美在线不卡| 人妻少妇精品久久久| 91在线限制级| 天天噜| 芊芊操逼视频无码| 国产一区二区三区不卡手机在线| 国产AB视频| 老熟女网站| 十八禁啪啦拍视频无遮挡| 久热大香蕉| 99热97| 九九九九9999| 国产精品久久久亚洲第一牛牛_在线观看| 影音先锋日本一区二区| 91性网| 亚洲精品三| 热久日综合| 亚洲日本大香蕉1| 牛牛操视频逼| 久久欧美1卡2卡3| 亚洲熟女综合网| 99久re热视频精品98| 久热99999| 温婉少妇玩3p| 97欧美色综合| 久热大香蕉| 天天影视综合色| 日本中文字幕在线视频| 欧美性爱一区二区三区| 成人av免费观看| 好涩综合| 老熟女熟妇| 花花AV导航| 久久综合18p| 中文字幕第9页萱萱影音先锋| 五月婷丁香| 日韩精品中文字幕人妻| 天天日天天射天天干| 亚洲一级性爱视频免费看| 日本一级黄色电影| 精品国产乱码久久久久久久久久毛片| 可以免费观看的日韩av毛片| 九九热三级片| 综精品久久久aaaa| 国产多人在线观看视频| AV男人天堂网| 性色高清在线| 欧美视频在线视频免费va| 久久专区| 久久久精品,3| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 五月天婷婷久久| 97香蕉网| 色网亚洲人| 影音综合网| 五月天开心网| 超碰91在线| 欧美第一页| 亚洲人在线成线成人| 黄色片大香蕉| 色色香蕉| 女色综合| 91成人无码| 超碰69| 色婷婷久久| 日韩综合成人免费视频| 97欧美超碰| 天天久久| 欧美色图亚洲色| 不卡视频一区蜜桃视频| 欧美亚洲清纯| 人人操人人插人www| 91 丝袜在线| 7月婷婷综合| 亚洲天堂另类小说男人| 99啪啪| 欧美不卡在线美女| 日本啊啊啊啊啊视频| 国产精品3| 99久久精品国产高潮| 国产精品制服丝袜清纯唯美| av最新免费中文字幕| 超碰精品| 欧美少妇高潮| 国产丝袜高跟美女av免费观看| 熟妇熟女亚洲天堂网| 美女爽爽爽刺痛洞洞| 久操婷婷| 最新国内自拍av免费| 国产精品高朝久久久久久久| 99热97| 噜噜在线| 国产精品国产拍高清AV| 乱操乱伦AV| 加勒比综合在线| 91N综合网在线| 极品色综合| 在线综合 亚洲 欧美中文字幕 | 中文字幕乱码人妻二区三区 | 欧美97视频| 啊啊啊啊啊操我视频| AV电影在线播放| 欧美一级久久久久久久大片动画| 午夜小电影在线插入淫高潮| 中欧人妻丝袜中文字幕| 亚洲熟妇A V黑人| 国产成人精品网站| 蜜臀99久久| 亚洲av青草久久一区二区| 日韩欧视频| 国产精品久久泡妞网站| 狠狠91| 亚洲欧美综合| 国产亲戚伦亲在线| 精品国产乱码久久久久久口爆网站| 国产久久日韩网站导航| 久久久性爱视频| 中文字幕AV片| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲九九视频| 国内外内射高清视频| 亚洲日韩天堂| 男人天堂黄片| 五月丁香六月激情综合| 在线观看A啊啊啊| 激情小说激情视频| 欧美色视频在线| 超碰久热| 屁股久久久久久久久| 亚洲中文sv| 内射小黄片| 爆操无码| 欧亚 另类 久| 秋霞一级鲁丝片A片| 人妻天天爽天天爽三区| 人妻乱仑一区二区三区| 久久精品视频久久久| 欧色网址| 精品久久久av无码免费| 综合一区中亚洲国产成人综合精品 | J?P?NESEHD熟女熟妇伦| 日韩性爱网址| 国产精品毛片| 做爱A级亚欧| 久久草草欧美精品| 1204人成网站色www| 日韩欧美字幕亚洲一区二区| 97超碰巨乳| 日本一区二区不卡| 亚洲男人的天堂一区二区| 一卡二卡在线播放| 天天干人妇| 欧美日韩国产人人| 国产亚洲中文不卡二区| 麻豆天美制片厂网站视频| 好色综合| 污到发麻的视频 国产| 欧美一级在线观看成人| 九九九九九九亚洲| 囯戸精品高潮呻吟旡码| 欧美性爱一区| www.色婷婷色综合| av三级电影在线播放| 国产白嫩精品久久| 狠狠激情综合狠狠操中文字幕| 九一性生活免费视频| 99久久久无码精品国产人| 天堂国产AV| 亚洲人妻中文高清| 91美女精品| 91九九九馒头| 日本一本道A级黄色毛片试看60分钟| 神马久久久久久久久久久久| 中文字幕精品日韩中文字幕| 亚洲第一页色网| 97se综合网| 亚洲欧美日韩精品久| 色淫网站优优视频| 少妇色综合| 情色AV电影| 天天综合网日韩7799| 色噜噜日韩精品| 人妻激情偷乱视频一区二区三区 | 日少妇视频| 久久久九九| 美女诱惑在线一区| n1038 一二三区| 欧美熟女少妇| 欧洲色| 中文字幕交换人妻| 国产精品一区av在线| 91A欧美电影网站| 亚洲凸凹超碰成人| 极品后入免费视频| 精品国产99| 亚洲欧美性生活| 骚货人妻偷情自拍在线视频| 九九久久99| 干干干天天| 欧美系列在线一区二区| 日欧亚洲二三区大片不卡| 少妇啪啪自拍| 日韩欧美国产高清视频| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 91情色| 加勒比海色香蕉婷婷| 友优传媒精品在线一区二区| 91美女视频电影| 蜜区区视频79| 国产精品 视频| 热99这里有精品综合久久 | 亚洲欧美精品国产一区二区| 男插女青青影院| 亚洲综合另类小说色区亚洲成av人片在www| 肏逼视频日本| 美国aaaaa一级黄片| 精品国产肉丝袜在线拍国语| 久久久久久AⅤ无码免费肉站| 国产伦乱91| 嗯啊不要在线| 欧美国产成人在线| 无码78| av在线一区二区三区| 色久桃花影院在线观看| 国产女人91精品嗷嗷嗷嗷| 强奸乱亚洲| 亚洲精品久久久久久久久豆丁网| 日韩精品操少妇| 国产精品乱码久久| 伊人精品久久网站| 天美av在线观看| 色原狠狠天天天| 中文字幕av亚洲精品| 国产精品黄色三级av| 色婷婷激情| 日韩不卡网操逼中文字幕日韩| 欧美综合色| 中文字幕久热视频在线| 97蜜桃综合| 神马久久久久| 久插不卡| 激情抓乳插进去啪啪啪日韩 | 91九九九馒头| 美女久久久| 全球成人中文在线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 97在线精品| 人妻人人澡人人爽人人| 国产成人91一区二区三区| 啪啪啪综合网| 熟女高潮合集-永久久久-成人AV | 亚洲av无线观看| 久久综合日韩亚洲欧美| 91美女片在线| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 亚洲色图久久成人| 东京热综合久久一区二区| 波多野结衣先锋影音| 二级毛片| 九九久久九九久久| 精品人妻一区二区三区在| 国产超碰国产97| 一区操逼| 人妻少妇精品无码专区二区密桃| 亚洲综合精品国产一区| 免費人妻夜夜爽天天爽爽一区| 啊啊啊操一区| 美女极品一区二区三区| 九九九九免费高| 亚洲熟女中文字幕在线| 日本三级网页| 人妻一区视频| 久久精品国产亚洲妲己影视| 九九九网站| 91一区二匹| 欧美色图亚洲激情| 欧美性少妇| 国模91| 美女毛片999| 综合天天网| 久草在| 天天色怡春院| 啊嗯嗯啊好大好爽| 亚洲色综网| 久久综合久色欧美综合狠狠 | 亚洲人精品午夜不卡| 欧美青青草视频| 国产女主播视频在线观看| 久久久久久9999| 国产精品视频在线播放 | 欧美女同在线| 欧美丝袜91| 午夜毛片亚洲精品片国产久久久| 超碰97丝袜| 亚洲天堂五月天国产| 秋霞免费无码视频日韩A片| 91影库| 蜜乳性色无码专日粉嫩骚逼AV| 亚洲第一无码播放立川理惠| 欧美十八禁在线看| 激情文学网伊人| 亚洲人在线| 国产成人天堂| 亚洲自拍小说| 亚州熟女乱伦| 人人妻人射| 五月婷婷色| 久久久久一本一区二区青青蜜月| 蜜臀一二三| 青娱乐91| 精品无码久久久久久久杏吧| 国产av强奸美女| 凹凸视频特色日本特黄| 91女在线观看| 蜜臀在线免费观看在线免费观看| 亚洲欧洲无码一区夜| 黄色成年| 人人摸.人人色| 99九九久久| 夜夜操2028| 中亚黄色三级大片| 国产精品96| 一区二区视频在线播放| 国产成人精品日本视频| 蜜臀精品1区2区| 尤物视频偷拍免费| 女沟厕偷窥piss小便| 色狠狠 - 百度| 男男H黄动漫啪啪无遮挡网站| 人妻熟女一区在| 天天躁狠狠躁av| 久久久久亚洲Av无码专区老牛影视| 国产女人与拘做受视频免费 | 干B视频伊人网| 青青草国产一区二区三区| 91无遮挡| 国产高清成人传媒影视| 久久久18禁| AV乱伦国产| 久久人妻办公室视频| 中日韩久久久免费看| 人人操人人搞人人草| 九九英色视频| 亚洲精品国产精品成人| 欧美性天天影视| 蜜臀久久久99久久久久 | 久久伊人青青草| 色哟哟AⅤ| 丝袜制服字幕在线| 亚洲欧美第一页| 天天透伊人| 91老熟女视频| 东京太热久久久| 丰满人妻一区二区三区色-百度| 五月综合久久| 欧美美女视频| 97资源制服丝袜| 天天噜| 极品色社| TS人妖另类精品视频系列| 亚 欧 美 综合| 亚洲国产精品无码AV久久| 懂色AV一区二区三区| 欧美不在线| 久极品在线观看| 欧美久久伊人| 97资源免费视频| 成年人三级黄色片视频| 欧美人妻色| 久操网址| 东京热伊久| 色婷婷丁香五月天| 国产女人视频三四五区| 99re这里只有精品中心播放| 国产黄色剧情影片麻豆免费播放| 91青视频| 影音先锋新男人| 激情文学 亚洲图片| 日本肉体xxxx裸交| 欧洲亚洲少妇| 久插不卡| 色情乱伦AV| 超碰97极品9| 嗯啊不要啊在线| 伊人久久综合影院精品久久久| 北京美女一区二区| 欧美日韩国产色图在线| 欧美黄业| 亚洲情色图片区| 国产欧美亚洲精品a第2页| 四虎影视精品| 在线 亚洲 网爆 自拍| 日本无码1| 91综合无码| 中文乱码99| 亚洲精品国产精品乱码不99| 久久69| 久久99精品国产| www.天天干| 久久精品午夜国产亚洲AV无码| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 亚洲春色欧美激情自拍| 蜜乳av一区二区三区| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产中文字幕在线点播| 91男人综合| 啊嗯好大视频在线观看| 日韩久久激情精品| 69av一区二区三区| 天天日骚逼熟女| 中文字幕乱碼在线| 亚洲AV成人在线| 亚洲h片在线免费观看| 亚洲丝袜二区在线| 久久久久亚洲一区女同性恋中文字幕| 亚洲图片偷拍视频区| 亚洲欧美国产中文视频| 色狠狠一区二区三区香蕉| 欧美色997| 亚洲成人av色网| 国产精品极品美女视频| 97操| 亚洲综合色图欧美| 色网综合网| 日本一区二区三区精品| 天天爽天天操| 尤物国产一区在线观看| 亚瑟国产精品久久无码| 久久九色| 高精欧美色| 欧美草草| 人人操人人射人人干| 伊人国产av| 久jiu久神马影院| 久久性爱城| 欧美日韩国产中文精品字幕自在自线 | 久久精品国产亚洲AV片多多| 欧美高清无码免费视频高清版| 久久黄黄黄| 超碰 国产熟女精品一区| 欧美亚洲se91| 先锋音影AV| 国产精品 午夜福利| 成人影 天天操 亚洲| 欧美日韩国产在线| 日本一级黄色电影| 不卡啪啪视频| 免费看欧美美女黄色大片| 日韩Va亚洲va欧美Ⅴa久久| 日本精品中文字幕视频| 啊啊啊好想要| 加勒比伊人| 日本视频在线中文字幕| 欧美性色网| 色爱亚洲| 丰满人妻-区二区三区免费看 | 国产辣妈在线视频福利| 26UUU欧美日本| 国产粉嫩蜜臀av一区二区三区| 好属操| 久久久久久9| 2017av无码免费无线播| 欧美操人视频| 第四色奇米影视777| 欧美亚洲一级在线观看| 精品国产一区二区三区香蕉欧美 | 综合激情一一91| 吊色| 97在线免费视频观看| 诱惑网综合| 国内偷拍精品一区二区| 看免费一级在线播放毛片| 国内偷自视频区视频综合| 最新亚洲人成网站在线影院| 欧美综合娱乐久久| 麻豆啪啪啪视频| 婷婷色色五月天| 操人妻丝袜高跟| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 国产精品在线一区二区| 国产精品禁久久久精品| 男人天堂新| 在线观看亚洲成人精品| 亚洲第一精品在线视频| 日韩性爱视频免费在线 | 亚洲欧美情色| 国产Av超碰| 亚洲AV无码成人精品久久| 日本99视频| 2019天天操天天爽天天拍| 亚洲精品 欧美精品| 91天美免费| 91被操| 久久鲁干| 欧美老熟另类| 国产精品色| 亚洲图片激情小说| 在线国产福利网址导航| 99视频内射三四| 蜜臀AV成人精品蜜臀AV久久| 狠狠干2020| 天天干人人看综合| 日本熟妇人妻中出视频| 黑操B| 久久国产999| 色吧91| 熟女色综合久久| 美女啊啊啊啊pc| 欧美综合网站999| 一区AV| 韩国黄色片精品久久久| 夜夜欢天天干| 精品视频免费在线一区| 日韩人体偷拍| av 模特一区了| 综合久久久久久久久91| 日韩中文字幕二区| 国产十八禁视频| 色妇综合网| 久久男女激情视频网站| 97硬碰| 人人操人人肉久久精品| 色伊人91| 色色99| 欧美色人| 丁香六月综合激情| 97超碰欧美手机在线| WWW操逼| 日韩无码嘿咻黑热久| 国产精品粉嫩福利在线| 亚洲精品尤物yw在线影院| oumeisetu综合| 国际精品久久久| 亚洲AV操| 啊啊啊好舒服视频在线观看| 午夜小电影在线插入淫高潮 | 欲色综合| 中文久久爆乳| 欧美一品道| 国产野战露脸在线播放| 天天日日本| 男人天堂2017| 麻豆天美电影一区二区| 嗯嗯不要视频| 91性高潮久久久久久久久| 欧美综合传媒| 在线观看AV片| 肉丝无码中文高清| 欧美老妇曰批的视频| 亚洲欧美setu| 久久精品福利影院| 久久水蜜臀亚洲AV无码精品| 蜜臀无码视频在线观看| 久久啊哟| 男人女人18禁片免费看网站| 欧美不卡在线美女| 97在线观看| 美女露胸露屁股| 久久产精品一区二区三区电影 | 五月天我淫我色av| 操学生天天| 国产三级在线现体验区| 欧美 日韩 另类 亚洲| 亚洲欧美日韩制服另类| 69人妻精品丰满熟女区| 午夜福利1区2区3区| 嫩草影院永久在线制服丝袜| 神马久久久久久伦理片| 新视频sss国产| 成人免费在线网站| 欧美性少妇| 美女超碰978| 女人天堂av在线播放| 欧美亚洲丝袜美女电影| 370p日韩欧美亚洲精品| 天美一区在线| 成人短视频在线观看| 天天综合中文字幕 91| 观看视频图片一区二区三区| 人人干黄色| 日日干夜夜欢| 97色婷婷| 免费无码婬片AAAA片直播色戒| 艳尻美人妻| 一起草精品人妻| 久操视频在线观看| 成人网欧美风情| 精品一区二区成人| 熟人人妻少妇精品久久| 少妇免费视频| 国产亚洲精品农村妇女| 四虎884| 九九九九九九九九九九九免费国产| 欧美大香蕉久| 久九9精品| 麻豆精品久久久久久久| 国产午夜福利电影免费在线观看 | 99久久九九| 中文字幕av亚洲精品| 欧美激情黑人| 91在线欧色| 欧美一区二区观看在线| 白丝一区| 欧美色色人| ss久久| 性爱乱伦一区| 国产蜜臀精品一区免费尤物| 乱伦1色页| 91爱啪| 欧美超碰人妻97| 麻豆天美国美国产| 亚洲精品中文字幕一区在线视频| 97久久精品| 欧美精品,四区。五区| 伊人青青一区成人视频在线观看区| 性影在线视频| 17c嫩草51久久91嫩草| 国产精品一区二区麻豆| 日韩精品高清资源在线 | 性色aV一区二区三区噜噜| 北京美女一区二区| 欧美日不卡| 久久久久国产精品片区无码直播| 性无码专区2020| 国产精品另类| 色哟哟av网址| 超碰99热中文字幕| 色色99| 日本在线激情一区二区三区| 日本中文字幕不卡视频| 综合色区偷拍| 96精品一区| 亚洲视频一二区| 中文字幕一区二区三区蜜臀| 大香蕉伊人久久| 中日韩欧美精品无码AⅤ一区二区| 亚洲欧洲av影音| 日韩精品人妻一区二区| 蜜桃臀一区二区三区久久| 国产青视频| JULIA人妻风俗店中出电影| 亚洲综合五月天| 妺妺跟我一起洗澡没忍住| 久操com| 波多野结衣一级视频| 日韩三级在线观看网站| 亚洲动态色图| 不卡二三区人妻少妇| 淫穴高潮色图| 久久超碰av在线| 日韩精品大香蕉伊人在线| 神马久久久久久久久久| 欧美丝袜激情| 精品人妻夜夜草| 啊啊啊好湿久久| wwe 天天干.com| 蜜臀在线免费观看在线免费观看| 久久精品人体| 久久久999网站| 亚洲美女精品| 色婷婷蜜臀av| 蜜桃在线观看一区二区三区 | 欧洲精品二区| 东京太热男人的天堂久久久| 乱人乱色一区二区三区免费| 玖玖无码超碰| 欧美性爱一区二区三区| 九久9精品| 2019天天干| 香蕉欧美| 久久久精品中文字幕爱豆| 东京热视频网| 亚洲日韩美国人妻| 免费一级黄色录像影片| 99青草| 国产精品视频电影| 久久综合中文国产| 吉川爱美亚洲二区在线|