針對巴哈姆特和噗浪的 Python 爬蟲
Python crawler for Gamer and Plurk
Player_SystemCall
2023 年 7 月 4 日不過除了程式碼和參考資料的連結可以複製外,
其他都不可以複製就是了。
三、Python 程式
(二)環境變數檔案 Environment File
這節建議和第五章第二節──GitHub Secret 連在一起看,因為這節只有提到環境變數檔案於本地端的處理方式,雖有包含第二章第二節──Google Sheets API 後所取得的 Json 檔案(於下面 ENV 檔案的變數名為 GOOGLE_SHEETS_API_KEY)的處理方式,但是相關解釋在第五章第二節──GitHub Secret。
一般人在寫程式時,通常只會讓其在本地端裝置──自己的桌機或筆電上運作,因此對於敏感資訊的避免曝光比較不會特別去花心思,都是直接在程式內將敏感資訊直接明文指定過去,以只會在本地端運作的程式而言,這樣其實是最簡單可行的方法,但是如果這個敏感資訊在本地端有多個程式需要使用,那麼將其獨立出來做統一的控管比讓他們明文散落在各自的程式檔案中還要好上不少,而且還會比較安全一點,在將敏感資訊獨立成一個檔案後,其實可以將其儲存成各種檔案格式,與之相對應的,將其引入程式中的使用方法也會有所不同,一般常見的方法有存成 Python 檔案然後再用 import 引入和存成環境變數(Environment Variable)檔案(.env;ENV 檔案)然後用 os.getenv(.env 內的變數名稱) 引入,由於存成 Python 檔案有和主副程式混淆的風險,因此建議存成 .env 檔案降低混淆風險。
在那之前,如果有對資料夾用版本控制軟體進行追蹤的人要注意一件事,版本控制軟體會將控管的專案資料夾做全方面的紀錄,因此,如果要在這種資料夾內建立環境變數檔案,需要在該資料夾內設定排除該檔案的控管,如果這個專案資料夾是要和他人分享的,那就建立 1 份環境變數檔案範例(副檔名:.env.example)給他人參考吧。
如何創建一個 .env 檔案並將其內部的變數引入?1、打開文字編輯器。2、將需要的敏感資訊以「變數 = 敏感資訊」的形式放進去。3、儲存時將檔案的位置存檔在和需要敏感資訊的程式同一個資料夾並將名稱直接存成副檔名 .env(如果該位置有版本控制軟體進行控管,不要讓 .env 檔案接受控管,前段說過)。4、在需要引入敏感資訊的程式內添加 load_dotenv() 和程式內的變數 = os.getenv(.env 內的變數名稱)將敏感資訊引入。
關於第二章第二節──Google Sheets API 取得的 Json 格式的 API Key 檔案的處理方法有 2 種,第 1 種是直接將 Json 檔案引入使用,第 2 種則是將 Json 檔案裡的 Key 複製下來放到 ENV 檔案中,相關的解釋我放到第五章第二節──GitHub Secret 那邊,如果是引入檔案那語法就是 pygsheets.authorize(service_file=".\google_sheets_API_key.json"),如果是引入環境變數,那語法就是 pygsheets.authorize(service_account_env_var = " GOOGLE_SHEETS_API_KEY")。
Environment File => .env 環境變數名稱一律大寫。 |
PLAYER_SYSTEMCALL_GAMER_ID = 秘密 PLAYER_SYSTEMCALL_GAMER_NICK_NAME = 秘密
PLAYER_SYSTEMCALL_PLURK_ID = 秘密 PLAYER_SYSTEMCALL_PLURK_NICK_NAME = 秘密 PLAYER_SYSTEMCALL_PLURK_DISPLAY_NAME = 秘密
GOOGLESHEETS_URL = 秘密
GOOGLE_SHEETS_API_KEY = 秘密 |
Example of Environment File => .env.example 環境變數名稱一律大寫。 |
PLAYER_SYSTEMCALL_GAMER_ID = PLAYER_SYSTEMCALL_GAMER_NICK_NAME =
PLAYER_SYSTEMCALL_PLURK_ID = PLAYER_SYSTEMCALL_PLURK_NICK_NAME = PLAYER_SYSTEMCALL_PLURK_DISPLAY_NAME =
GOOGLESHEETS_URL = https://docs.google.com/spreadsheets/d/spreadsheetId
GOOGLE_SHEETS_API_KEY = |