此 Python 腳本 ( vfs-appointment-bot ) 會自動檢查指定國家/地區的 VFS Global 入口網站的預約。
可以使用兩種方法安裝vfs-appointment-bot
腳本:
這是安裝vfs-appointment-bot
的首選方法。操作方法如下:
建立虛擬環境(建議):
python3 -m venv venv
這將建立一個名為venv
的虛擬環境,以將專案依賴項與系統範圍的 Python 安裝隔離(建議)。
啟動虛擬環境:
Linux/macOS:
source venv/bin/activate
視窗:
venv S cripts a ctivate
使用 pip 安裝:
pip install vfs-appointment-bot
這將下載vfs-appointment-bot
套件及其相依性並將其安裝到您的 Python 環境中。
對於替代安裝方法,請從專案儲存庫複製原始程式碼並手動安裝。
克隆儲存庫:
git clone https://github.com/ranjan-mohanty/vfs-appointment-bot
導航到專案目錄:
cd vfs-appointment-bot
建立虛擬環境(建議):
python3 -m venv venv
這將建立一個名為venv
的虛擬環境,以將專案依賴項與系統範圍的 Python 安裝隔離(建議)。
啟動虛擬環境:
Linux/macOS:
source venv/bin/activate
視窗:
venv S cripts a ctivate
安裝依賴項:
pip install poetry
poetry install
安裝劇作家依賴項:
playwright install
下載config/config.ini
模板。
curl -L https://raw.githubusercontent.com/ranjan-mohanty/vfs-appointment-bot/main/config/config.ini -o config.ini
更新 vfs 憑證和通知通道首選項。有關配置電子郵件、Twilio 和 Telegram 通知的詳細信息,請參閱通知頻道部分。
將設定檔的路徑匯出到環境變數VFS_BOT_CONFIG_PATH
export VFS_BOT_CONFIG_PATH= < your-config-path > /config.ini
如果您透過複製儲存庫(手動安裝)安裝腳本,則可以直接編輯config/config.ini
中的值。
命令列參數:
該腳本要求使用-sc
或--source-country-code
和-dc
或--destination-country-code
選項。
運行腳本:
有兩種方法可以提供所需的預約詳細資訊:
響應用戶提示(建議):
vfs-appointment-bot -sc IN -dc DE
該腳本將提示您輸入指定國家所需的預約參數。
使用-ap
或--appointment-params
:
以逗號分隔(而非空格分隔)鍵值格式指定約會詳細資料:
vfs-appointment-bot -sc IN -dc DE -ap visa_center=X,visa_category=Y,visa_sub_category=Z
然後,該腳本將連接到指定國家/地區的 VFS Global 網站,使用提供或輸入的參數搜尋可用約會,並可能發送通知(取決於您的配置)。
目前它支援三種通知管道,讓您隨時了解預約可用性:
配置通知:
電子郵件:
電子郵件帳號:您需要一個Gmail 帳號來傳送通知。
應用程式密碼:為您的 Gmail 帳戶產生應用程式密碼,而不是常規密碼。請參閱 Google 產生應用程式密碼的指南:https://support.google.com/accounts/answer/185833?hl=en。
設定檔:使用以下詳細資訊更新應用程式的設定檔 ( config.ini
):
email
(必填):您的 Gmail 地址。password
(必填):您產生的 Gmail 應用程式密碼。特維利奧:
建立 Twilio 帳戶(如果需要):在 https://www.twilio.com/en-us 註冊免費的 Twilio 帳戶以取得帳戶憑證和電話號碼。
檢索憑證:在 Twilio 帳戶儀表板中找到您的帳戶 SID、驗證令牌和電話號碼。
設定檔:使用以下內容更新應用程式的設定檔( config.ini
):
auth_token
(必要):您的 Twilio 驗證令牌account_sid
(必要):您的 Twilio 帳戶 SIDsms_enabled
(可選):啟用簡訊通知(預設值:True)call_enabled
(可選):啟用語音通話通知(預設值:False)url
(可選):Twilio API URL(僅在啟用呼叫時才需要)to_num
(必填):通知收件者電話號碼from_num
(必需):您將用於發送訊息的 Twilio 電話號碼電報:
建立 Telegram 機器人:造訪 https://telegram.me/BotFather 建立 Telegram 機器人。請依照螢幕上的指示取得機器人的令牌。
設定檔:使用以下內容更新應用程式的設定檔( config.ini
):
bot_token
(必填):您從 BotFather 獲得的 Telegram 機器人令牌。chat_id
(可選):您想要接收通知的特定 Telegram 聊天 ID。如果省略,機器人將向發送訊息的聊天室發送通知。要尋找您的聊天 ID,您可以建立一個只有您自己的群組聊天,然後在機器人中使用/my_id
命令。 下表列出了目前支援的國家及其對應的預約參數:
國家 | 預約參數 |
---|---|
印度(IN) - 德國(DE) | 簽證類別、簽證子類別、簽證中心 |
伊拉克(IQ) - 德國(DE) | 簽證類別、簽證子類別、簽證中心 |
摩洛哥(MA) - 義大利(IT) | 簽證類別、簽證子類別、簽證中心、付款方式 |
亞塞拜然(AZ) - 義大利(IT) | 簽證類別、簽證子類別、簽證中心 |
筆記:
1.頻繁請求後登入失敗:
如果機器人過於頻繁地向 VFS 網站發出登入要求,VFS 系統可能會因可疑的自動化而暫時阻止您的造訪。這可能會導致登入失敗。
2. 偶爾的驗證碼驗證:
VFS 網站登入時需要驗證碼驗證步驟。目前,該機器人沒有內建的驗證碼求解器。
config.ini
檔案中將browser_type
設為"chromium" or "webkit"
在另一個瀏覽器中重試登入程序。注意:我們不斷努力改進機器人的功能。未來的更新可能包括整合的驗證碼解決功能。
該腳本目前設計用於與德國的 VFS Global 網站配合使用。透過修改腳本來處理不同 VFS Global 國家/地區頁面的網站結構和參數要求的潛在變化,可以擴展對其他國家/地區的支援。
我們歡迎社區為改進這個項目做出貢獻!您可以透過以下方式參與:
該腳本按原樣提供,不隸屬於 VFS Global。您有責任確保在使用此腳本時遵守 VFS Global 的條款和條件。請注意,網站結構和預約可用性機制可能會隨著時間的推移而改變。