使用Python腳本對GiteePages進行一鍵部署的使用說明
本次系統環境
os: Deepin(Linux)Python: 3.7lib: PyYAML=5.3.1 | selenium=3.141.0extend_driver: chromedriver
使用說明參數Python腳本和config.yaml配置文件中包含的參數信息
repo_user_name = 'Gitee用戶名'repo_name = '倉庫名'login_user = '登錄用戶'login_pwd = '登錄密碼'os = '輸入數值1~3(你的操作系統:1 Linux | 2 Mac | 3 Windows)'驅動
本文使用的是 Linux 87.0.4280.88(正式版本) (64 位)
你需要根據你的操作系統和谷歌瀏覽器選擇對應的驅動。如果你的瀏覽器版本與我的一致,那么恭喜你_,直接拿去用吧~我已經把Linux、Mac和Windows的驅動準備好了。
如果你的谷歌瀏覽器版本與我的不一致也不要緊,下面我會告訴你如何下載與配置。
1.查看你的chrome版本
在chrome瀏覽器地址欄輸入: chrome://version/ 查看自己的版本信息。
然后你將看到:
或者在設置里查看:
2.下載驅動
選擇自己的驅動 Windows|Linux|Mac。 驅動下載: 地址
3.重要提示: 需要把驅動放到下面兩個路徑下
1.谷歌的安裝路徑
2.python的安裝路徑
Python環境為了避免干擾,我使用虛擬環境來進行管理。
當然你使用安裝系統安裝的環境也沒關系。
使用安裝環境1.安裝依賴庫
在requirements.txt所在目錄執行:
pip install -r requirements.txt創建尋環境
1.創建目錄, 并進入該目錄
mkdir -p ~/Virtualenv/Python37 && cd ~/Virtualenv/Python37
2.創建虛擬環境
python3 -m venv python
如果報錯:
The virtual environment was not created successfully because ensurepip is notavailable
執行:
hljsapt-get install python3-venv
3.切換到虛擬環境
如果使用IDE,直接將腳本切換為虛擬環境的可執行程序。如果使用命令行,可以直接切換到尋虛擬環境所在的目錄,直接執行即可;或者執行虛擬環境中的active。(Windows 腳本在Script下| Linux、Mac在bin下)e.g. 對于Linux: source ./bin/activate
4.安裝該本腳本需要的依賴包
pip install -r requirements.txt運行腳本
1.準備你的倉庫信息我提供了通過鍵盤輸入和配置文件兩種方式來獲取你的倉庫和密碼等信息。
默認是讀取配置文件的方式進行獲取。如果你要切換,你可以在bin.py的文件末尾進行配置,我做了說明。
2.執行腳本如果你已經了解并準備好了,那么直接執行它吧~
python bin.py附錄
腳本 | 驅動 | 配置文件等信息,到我的Gitee上下載--> 地址
1.配置文件:config.yaml
repo_user_name: 倉庫用戶repo_name: 倉庫名login_user: 登錄名login_pwd: 登錄密碼os: 1
Python腳本:bin.py
##! ~/Virtualenv/Python37/python/bin/python# -*- coding:utf-8 -*-from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.ui import WebDriverWait as Waitimport yamlimport osdef redeploy(repo_user_name, repo_name, login_user, login_pwd, oSystem): print('nstart refresh gitee pages...') os_type = {’1’: ’chromedriver_linux’,’2’: ’chromedriver_mac’,’3’: ’chromedriver_win.exe’ } url = 'https://gitee.com/' + repo_user_name + '/' + repo_name + '/pages' # path = os.path.dirname(os.path.realpath(__file__)) # driver_path = 'script/{}'.format(os_type[oSystem]) driver = os.path.abspath('script/chromedriver_linux') chrome_options = Options() chrome_options.add_argument('--window-size=1920,1080') chrome_options.add_argument('--start-maximized') chrome_options.add_argument('--headless') browser = webdriver.Chrome(executable_path=driver, options=chrome_options) browser.get(url) Wait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'item.git-nav-user__login-item'))) print('load finish. url=' + url) login_btn = browser.find_element_by_class_name('item.git-nav-user__login-item') login_btn.click() Wait(browser, 10).until(EC.presence_of_element_located((By.ID, 'user_login'))) Wait(browser, 10).until(EC.presence_of_element_located((By.ID, 'user_password'))) print('login page load finish.') user_input = browser.find_element_by_id('user_login') pwd_input = browser.find_element_by_id('user_password') login_btn = browser.find_element_by_name('commit') user_input.send_keys(login_user) pwd_input.send_keys(login_pwd) login_btn.click() Wait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'button.orange.redeploy-button.ui.update_deploy'))) print('login finish.') deploy_btn = browser.find_element_by_class_name(’button.orange.redeploy-button.ui.update_deploy’) browser.execute_script('window.scrollTo(100, document.body.scrollHeight);') deploy_btn.click() dialog = browser.switch_to.alert dialog.accept() print('refresh gitee pages finish.') browser.close()def input_required(): repo_user_name = input('倉庫用戶名稱:n>>>') if len(repo_user_name) == 0:print('輸入不能為空!請重新輸入')input_required() repo_name = input('倉庫名稱:n>>>') if len(repo_name) == 0:print('輸入不能為空!請重新輸入')input_required() login_user = input('登錄用戶名稱:n>>>') if len(login_user) == 0:print('輸入不能為空!請重新輸入')input_required() login_pwd = input('登錄密碼:n>>>') if len(login_pwd) == 0:print('輸入不能為空!請重新輸入')input_required() oSystem = input('當前操作系統(默認Linux)nt**< 1:Linux | 2:Mac | 3:Windows >**n>>>') if len(os) == 0:redeploy(repo_user_name, repo_name, login_user, login_pwd, '1') redeploy(repo_user_name, repo_name, login_user, login_pwd, oSystem)def reade_conf(): path = os.path.dirname(os.path.realpath(__file__)) config = os.path.join(path, 'config.yaml') f = open(config) # 打開yaml文件 # d = yaml.load(f) ##yaml5.1之前的版本:使用load方法加載 d = yaml.load(f, Loader=yaml.FullLoader) ##yaml5.1之后的版本:使用load方法加載 repo_user_name = d[’repo_user_name’] repo_name = d[’repo_name’] login_user = d[’login_user’] login_pwd = d[’login_pwd’] oSystem = str(d[’os’]) redeploy(repo_user_name, repo_name, login_user, login_pwd, oSystem)if __name__ == ’__main__’: # 方式一:通過鍵盤輸入必要信息 # input_required() # 方式二:通過config.yaml配置文件 reade_conf()
參考文章
https://www.jianshu.com/p/19cc4eb0f199
https://www.cnblogs.com/wulixia/p/11200023.html
以上就是使用Python腳本對GiteePages進行一鍵部署的詳細內容,更多關于Python GiteePages一鍵部署的資料請關注好吧啦網其它相關文章!
相關文章:
1. AJAX實現省市縣三級聯動效果2. Java基于redis和mysql實現簡單的秒殺(附demo)3. 如何用python識別滑塊驗證碼中的缺口4. IntelliJ IDEA設置編碼格式的方法5. Kotlin + Flow 實現Android 應用初始化任務啟動庫6. SpringBoot+SpringCache實現兩級緩存(Redis+Caffeine)7. php讀取xml中某個元素的內容(PHP5以上才支持)8. IDEA SpringBoot 項目配置Swagger2的詳細教程9. Docker究竟是什么 為什么這么流行 它的優點和缺陷有哪些?10. ASP.NET MVC視圖頁使用jQuery傳遞異步數據的幾種方式詳解
