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

如何绕过Yaklass网站设备检查以获取账号页面HTML代码

绕过Yaklass网站设备检查的方法

我用Python脚本登录Yaklass网站并获取账号页面HTML时,被网站的“设备检查”机制拦截,返回了设备验证页面,无法正常获取目标内容。

我的脚本代码

import fake_useragent
import requests
import os
from dotenv import load_dotenv, find_dotenv

load_dotenv(find_dotenv())

session = requests.Session()

login_link = 'https://go.yaklass.ru/auth/password'
user = fake_useragent.UserAgent().random
header = {
    'user-agent': user
}
data = {
    'UserName': os.getenv('UserName'),
    'Password': os.getenv('Password')
}

responce = session.post(login_link, data=data, headers=header)

profile_link = 'https://www.yaklass.ru/Account/Profile'
soup = session.get(profile_link, headers=header)
print(soup.text)

返回的设备验证页面内容

<!DOCTYPE html>
<html lang="ru">
<head>
  <title>Checking your device</title>
  <link href="/favicon.ico" rel="shortcut icon"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link
    href="//b1a3b3f5-7394-48e5-9587-e5e03db7b89f.selcdn.net/mixed_opensans_400_400i_600_roboto_400_300_cyrilic_latin_v1.css"
    rel="stylesheet" type="text/css" media="screen and (min-width: 768px)"/>
  <link href="//b1a3b3f5-7394-48e5-9587-e5e03db7b89f.selcdn.net/robotocondensed/v16_cyrilic/font_v1.css"
        rel="stylesheet" type="text/css" media="screen and (max-width: 767px)"/>
</head>
<body>
<h3>Checking your device</h3>
<form id="captchaForm" action="/Account/DoSolveCaptcha1" method="post">
  <input type="hidden" name="r" id="r"/>
  <input type="hidden" name="b" id="b"/>
  <input type="hidden" name="s" id="s"/>
  <input type="hidden" name="tn" id="tn"/>
  <p id="msg">
    Please wait. In a few seconds the page will be loaded...
  </p>
  <p id="startPage" class="hide">
    <a href="/">To the main page</a>
  </p>
</form>
</body>
</html>

可行的绕过方法

  • 用浏览器自动化工具模拟真实访问
    网站的设备检查大概率会验证JS执行能力,单纯的requests库无法处理这类验证。推荐用playwright或selenium模拟完整浏览器环境:

    from playwright.sync_api import sync_playwright
    import os
    from dotenv import load_dotenv, find_dotenv
    
    load_dotenv(find_dotenv())
    
    with sync_playwright() as p:
        # 先开可视化模式调试,稳定后可改为headless=True
        browser = p.chromium.launch(headless=False)
        page = browser.new_page()
        # 打开登录页
        page.goto("https://go.yaklass.ru/auth/password")
        # 填写账号密码
        page.fill('input[name="UserName"]', os.getenv('UserName'))
        page.fill('input[name="Password"]', os.getenv('Password'))
        # 点击登录按钮(需根据页面实际元素调整选择器)
        page.click('button[type="submit"]')
        # 跳转至个人页面并获取内容
        page.goto("https://www.yaklass.ru/Account/Profile")
        print(page.content())
        browser.close()
    
  • 补充完整的请求头信息
    仅设置User-Agent不够,添加真实浏览器会发送的请求头,降低被识别为脚本的概率:

    user = fake_useragent.UserAgent().random
    header = {
        'user-agent': user,
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
        'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
        'Referer': 'https://go.yaklass.ru/',
        'DNT': '1',
        'Connection': 'keep-alive',
        'Upgrade-Insecure-Requests': '1'
    }
    
  • 处理验证表单参数
    从返回的验证页面看,表单包含r、b、s、tn等隐藏参数,这些是网站生成的验证标识。可以先请求登录页,等待页面JS生成这些参数后,再提交登录请求或验证表单。不过这种方法稳定性差,参数生成逻辑可能随时变更。

  • 更换代理IP
    如果你的IP被网站标记为异常,尝试更换代理IP,避免被识别为自动化访问。

内容的提问来源于stack exchange,提问作者mixs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:35:17