この Python スクリプト ( vfs-appointment-bot ) は、指定された国の VFS Global ポータルでの予約の確認を自動化します。
vfs-appointment-bot
スクリプトは、次の 2 つの方法を使用してインストールできます。
これはvfs-appointment-bot
インストールするための推奨される方法です。その方法は次のとおりです。
仮想環境を作成します (推奨):
python3 -m venv venv
これにより、プロジェクトの依存関係をシステム全体の Python インストールから分離するためにvenv
という名前の仮想環境が作成されます (推奨)。
仮想環境をアクティブ化します。
Linux/macOS:
source venv/bin/activate
Windows:
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
これにより、プロジェクトの依存関係をシステム全体の Python インストールから分離するためにvenv
という名前の仮想環境が作成されます (推奨)。
仮想環境をアクティブ化します。
Linux/macOS:
source venv/bin/activate
Windows:
venv S cripts a ctivate
依存関係をインストールします。
pip install poetry
poetry install
Playwright の依存関係をインストールします。
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
を使用して、送信元および宛先の国コード (ISO 3166-1 alpha-2 に準拠) をコマンドライン引数として指定する必要があります。 --destination-country-code
オプション。
スクリプトの実行:
必要な予定の詳細を提供するには 2 つの方法があります。
ユーザープロンプトへの応答 (推奨):
vfs-appointment-bot -sc IN -dc DE
スクリプトは、指定した国に必要な予約パラメータを入力するよう求めます。
-ap
または--appointment-params
を使用する場合:
予定の詳細をコンマ区切り (スペース区切りではない) の Key-Value 形式で指定します。
vfs-appointment-bot -sc IN -dc DE -ap visa_center=X,visa_category=Y,visa_sub_category=Z
次に、スクリプトは指定された国の VFS Global Web サイトに接続し、提供または入力されたパラメーターを使用して利用可能な予定を検索し、場合によっては通知を送信します (構成に応じて)。
現在、予約の空き状況を知らせるために 3 つの通知チャネルがサポートされています。
通知の構成:
電子メール:
電子メール アカウント:通知を送信するにはGmail アカウントが必要です。
アプリ パスワード:通常のパスワードの代わりに、Gmail アカウントのアプリ パスワードを生成します。アプリ パスワードの生成については、Google のガイドを参照してください: https://support.google.com/accounts/answer/185833?hl=ja。
構成ファイル:アプリケーションの構成ファイル ( 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
(オプション): SMS 通知を有効にします (デフォルト: 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 Web サイトへのログイン要求を頻繁に行うと、自動化の疑いにより VFS システムが一時的にアクセスをブロックする可能性があります。これにより、ログイン失敗が発生する可能性があります。
2. 時折のキャプチャ検証:
VFS Web サイトでは、ログイン時に CAPTCHA 検証手順が必要です。現在、ボットには CAPTCHA ソルバーが組み込まれていません。
config.ini
ファイルでbrowser_type
"chromium" or "webkit"
に設定して、別のブラウザでログイン プロセスを再試行します。注:私たちはボットの機能を改善するために常に取り組んでいます。将来のアップデートには、統合された CAPTCHA 解決機能が含まれる可能性があります。
このスクリプトは現在、ドイツの VFS Global Web サイトで動作するように設計されています。スクリプトを変更して、VFS Global のさまざまな国のページにわたる Web サイトの構造とパラメーター要件の潜在的な変動に対処することで、他の国のサポートを拡張できる可能性があります。
このプロジェクトを改善するために、コミュニティからの貢献を歓迎します。参加方法は次のとおりです。
このスクリプトは現状のまま提供されており、VFS Global とは関係ありません。このスクリプトを使用する場合は、VFS Global の利用規約に準拠していることを確認するのはあなたの責任です。 Web サイトの構造と予約の空き状況のメカニズムは時間の経過とともに変更される可能性があることに注意してください。