windows使用bat編寫自啟動帶用戶登錄數據的瀏覽器

windows使用bat編寫自啟動帶用戶登錄數據的瀏覽器

本文是為了優化前文selenium&playwright指定瀏覽器操作,編寫了一個bat單獨運行。(基于windows

這樣使用這個工具的人員可以直接在自己電腦上雙擊bat后再雙擊exe就可以直接運行程序,無需配置任何環境。

接著前文解決一下報錯

報錯playwright._impl._api_types.Error

在后續集成好的代碼運行過程中會出現如下報錯

代碼語言:JavaScript代碼運行次數:0運行復制

playwright._impl._api_types.Error: It looks like you are using Playwright Sync API inside the asyncio loop.Please use the Async API instead.

這里是因為我循環一次請求會重新實例化一個playwright,但上一次實例化的playwright并沒有關閉,所以需要在代碼里面加上

代碼語言:javascript代碼運行次數:0運行復制

def pw_stop(self):    time.sleep(5)    self.playwright.stop()

此操作在get_headers之后進行。

(雖然他建議的是我要使用異步模式,但我是指定瀏覽器打開,異步模式里面沒有我需要的API)

使用bat腳本創建文件夾

可以使用以下的 BAT 腳本創建文件夾到 C 盤并檢查它是否已存在:

代碼語言:javascript代碼運行次數:0運行復制

@echo offset folder=C:MyFolderif not exist %folder% (    echo Creating folder...    mkdir %folder%    echo Folder created successfully!) else (    echo Folder already exists!)pause

腳本中,首先定義了要創建的文件夾路徑為 C:MyFolder,然后使用 if not exist 判斷該文件夾是否已存在。如果不存在,則輸出信息“Creating folder…”,并使用 mkdir 命令創建文件夾。創建成功后,輸出信息“Folder created successfully!”。如果文件夾已存在,則輸出信息“Folder already exists!”,不執行創建操作。

可以將上述代碼保存為 XXX.bat 文件,在命令行中執行即可。

寫一個bat腳本,獲取chrome.exe所在的路徑

可以使用以下的 BAT 腳本獲取 Chrome.exe 所在的路徑:

代碼語言:javascript代碼運行次數:0運行復制

@echo offsetlocalrem 獲取 Chrome.exe 所在的路徑set "chromePath="for /f "tokens=* usebackq" %%a in (`where chrome.exe`) do (    set "chromePath=%%a"    goto :done):doneecho Chrome.exe is located at:echo %chromePath%pauseendlocal

腳本中,首先使用 where 命令查找 Chrome.exe 所在的路徑,并通過 for 循環獲取該路徑并賦值給變量 chromePath,然后使用 goto 語句跳出循環。最后,使用 echo 命令輸出 Chrome.exe 所在的路徑。

可以將上述代碼保存為 XXX.bat 文件,在命令行中執行即可。

解決bat的echo中文亂碼

在BAT腳本中,如果您使用中文字符作為echo命令中的參數,則可能會出現亂碼的情況。解決這個問題的方法是在使用echo命令輸出中文字符之前,將輸出的代碼頁設置為UTF-8編碼或其他支持中文字符的代碼頁。可以使用chcp命令來修改當前的代碼頁。

以下是設置代碼頁為UTF-8并輸出中文字符的示例代碼:

代碼語言:javascript代碼運行次數:0運行復制

@echo offchcp 65001  > nulecho 你好世界!

在上面的代碼中,chcp 65001命令用于設置代碼頁為UTF-8編碼,>nul用于將chcp命令的輸出重定向到空設備,以避免在腳本中顯示不必要的輸出。然后,使用echo命令輸出中文字符“你好世界!”,這時候就不會出現亂碼了。

如果您使用的操作系統不支持UTF-8編碼,可以使用其他支持中文字符的代碼頁,例如:936(中文簡體)或950(中文繁體)。在這種情況下,您可以將chcp命令的參數值更改為對應的代碼頁編號即可。

完整的bat腳本代碼語言:javascript代碼運行次數:0運行復制

@echo offchcp 65001  > nulecho ************************echo *****Start Runing*******echo ************************set folder=C:MyAutoFolderAutomationProfileif not exist %folder% (    echo Creating folder...    mkdir %folder%    echo Folder created successfully!) else (    echo Folder already exists!)rem 獲取 Chrome.exe 所在的路徑set "chromePath="for /f "tokens=* usebackq" %%a in (`where chrome.exe`) do (    set "chromePath=%%a")echo chromepath is : %chromePath%rem 啟動127.0.0.1:9222端口的谷歌瀏覽器echo Start ChromeBrowser at 127.0.0.1:9222 echo 瀏覽器啟動完畢,輸入回車鍵關閉當前窗口%chromePath% --remote-debugging-port=9222 --user-data-dir=%folder%pause 

將上面的代碼保存為XXX.bat,雙擊即可運行,會打開一個新的chrome瀏覽器。

你可以在這個瀏覽器進行登錄操作,并保存賬戶信息。

之后通過selenium或playwright連接該瀏覽器,就不需要登錄操作,可直接進行后續自動化操作。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享