此 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
将源和目标国家/地区代码(根据 ISO 3166-1 alpha-2)作为命令行参数提供--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 的条款和条件。请注意,网站结构和预约可用性机制可能会随着时间的推移而发生变化。