Python 스 크 립 트 를 사용 하여 GiteePages 를 원 키 로 배치 하 는 사용 설명
8184 단어 PythonGiteePages배치 하 다.
os: Deepin(Linux)
Python: 3.7
lib: PyYAML=5.3.1 | selenium=3.141.0
extend_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 )
운영 체제 와 구 글 브 라 우 저 에 따라 해당 하 는 드라이브 를 선택해 야 한다.만약 당신 의 브 라 우 저 버 전이 나의 것 과 일치한다 면,축하합니다,그냥 가 져 가서 쓰 세 요.저 는 리 눅 스,맥,윈도 드라이브 를 준 비 했 습 니 다.만약 당신 의 구 글 브 라 우 저 버 전이 나의 것 과 일치 하지 않 는 다 면,아래 에 나 는 당신 에 게 어떻게 다운로드 하고 설정 하 는 지 알려 줄 것 입 니 다.
1.chrome 버 전 보기
chrome 브 라 우 저 주소 표시 줄 에 입력:chrome://version/ 자신의 버 전 정 보 를 확인 합 니 다.
그리고 당신 은 볼 수 있 습 니 다.
설정 에서 보기:
2.드라이버 다운로드
자신의 드라이버 윈도 우즈|Linux|Mac 을 선택 하 십시오.드라이버 다운로드:주소.
3.중요 한 알림:구동 을 아래 두 경로 아래 에 놓 아야 합 니 다.
1.구 글 의 설치 경로
2.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 not
available
실행:
hljs
apt-get install python3-venv
3.가상 환경 으로 전환IDE 를 사용 하면 스 크 립 트 를 가상 환경의 실행 가능 한 프로그램 으로 직접 전환 합 니 다.
명령 행 을 사용 하면 가상 환경 이 있 는 디 렉 터 리 로 직접 전환 하여 실행 하면 됩 니 다.또는 가상 환경 에서
active
을 실행 합 니 다.(Windows 스 크 립 트 는 Script 에서|Linux,Mac 은 bin 에서)예 를 들 어 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
파 이 썬 스 크 립 트:bin.py
##! ~/Virtualenv/Python37/python/bin/python
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as Wait
import yaml
import os
def redeploy(repo_user_name, repo_name, login_user, login_pwd, oSystem):
print("
start 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(" :
>>>")
if len(repo_user_name) == 0:
print(" ! ")
input_required()
repo_name = input(" :
>>>")
if len(repo_name) == 0:
print(" ! ")
input_required()
login_user = input(" :
>>>")
if len(login_user) == 0:
print(" ! ")
input_required()
login_pwd = input(" :
>>>")
if len(login_pwd) == 0:
print(" ! ")
input_required()
oSystem = input(" ( Linux)
\t**< 1:Linux | 2:Mac | 3:Windows >**
>>>")
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 원 키 배치 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.