You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何为Python Selenium开发的VFS Global签证预约机器人实现自动填写短信验证码

求助:如何为Python Selenium开发的VFS Global签证预约机器人实现自动填写短信验证码

Hey Enes, 太懂你这种卡壳好几天的烦躁了——VFS的验证码步骤简直是自动化预约的拦路虎。既然你只能用土耳其手机号,下面这些贴合你场景的实用方案可以试试:

方法1:通过ADB读取安卓手机短信

如果你用的是安卓手机,这个方法最直接,能直接从设备里拉取短信:

  1. 先在手机上开启USB调试(得先解锁开发者选项——通常在设置>关于手机里连续点击版本号7次就能激活)。
  2. 在电脑上安装ADB工具,确保电脑能通过USB识别你的手机。
  3. 用Python的subprocess模块执行ADB命令获取VFS的短信,再用正则提取验证码:
import subprocess
import re

def get_vfs_verification_code():
    # 执行ADB命令获取VFS相关的收件箱短信
    adb_result = subprocess.check_output([
        'adb', 'shell', 'content', 'query', '--uri', 'content://sms/inbox',
        '--projection', 'body', '--where', "address='VFS'"
    ]).decode('utf-8')
    
    # 提取6位验证码(如果VFS用的是其他长度,调整正则即可)
    code_match = re.search(r'\b\d{6}\b', adb_result)
    if code_match:
        return code_match.group()
    return None

在Selenium脚本里请求验证码后,调用这个函数拿到验证码,再填入输入框就行。

方法2:用短信转发APP同步验证码到可访问服务

不想一直插USB的话,这个方案更灵活:

  1. 在安卓手机上装一个短信转发APP(比如应用商店里的「短信转发器」这类工具)。
  2. 设置转发规则:收到VFS的短信时,自动转发到你的Telegram机器人或者邮箱。
  3. 用Python拉取转发过来的验证码:
    • Telegram机器人:先通过@BotFather创建一个机器人,再用python-telegram-bot库监听消息提取验证码:
      from telegram import Update
      from telegram.ext import ApplicationBuilder, ContextTypes, MessageHandler, filters
      import re
      import asyncio
      
      vfs_code = None
      
      async def handle_new_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
          global vfs_code
          message_text = update.message.text
          if "VFS" in message_text:
              code_match = re.search(r'\b\d{6}\b', message_text)
              if code_match:
                  vfs_code = code_match.group()
      
      def fetch_vfs_code():
          global vfs_code
          app = ApplicationBuilder().token("你的机器人Token").build()
          app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_new_message))
          # 轮询15秒等待验证码消息
          asyncio.run(app.run_polling(timeout=15))
          return vfs_code
      
    • 邮箱:用Python的imaplib库读取收件箱,从转发邮件的正文里提取验证码。

避坑提醒:别被VFS封账号/IP

VFS的反爬虫机制很严格,这些细节一定要注意:

  • 操作之间加随机延迟,比如time.sleep(random.uniform(2, 5)),模拟人类操作节奏。
  • 用undetected-chromedriver代替普通ChromeDriver,能避开Selenium检测。
  • 别频繁刷新页面或重复提交请求,不然很快会被封IP或账号。

备注:内容来源于stack exchange,提问作者Enes Ünal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 18:15:27