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

Python版Selenium WebDriver能否操作浏览器开发者工具提取设备ID?

使用Python Selenium提取YouTube LocalStorage中的设备ID

完全可行,你可以通过执行JavaScript获取LocalStorage中的目标键值,再解析JSON提取data字段。以下是具体实现步骤和代码:

实现步骤

  • 初始化Chrome驱动并打开YouTube页面
  • 执行JavaScript命令读取localStorage中yt-remote-device-id对应的值
  • 将获取到的JSON字符串解析为Python字典,提取data字段
  • 处理可能的异常(如键不存在、JSON格式错误等)

完整代码示例

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import json
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

# 初始化Chrome驱动(自动匹配浏览器版本)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# 打开YouTube主页
driver.get("https://www.youtube.com/")

try:
    # 等待页面核心元素加载完成,确保LocalStorage已初始化
    WebDriverWait(driver, 15).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "ytd-searchbox"))
    )
    
    # 执行JS获取LocalStorage中的目标键值
    device_id_raw = driver.execute_script("return window.localStorage.getItem('yt-remote-device-id');")
    
    if device_id_raw:
        # 解析JSON字符串
        device_info = json.loads(device_id_raw)
        # 提取data字段内容
        device_id = device_info.get("data")
        print(f"提取到的设备ID: {device_id}")
    else:
        print("LocalStorage中未找到yt-remote-device-id键")
except json.JSONDecodeError:
    print("错误:yt-remote-device-id的值不是有效的JSON格式")
except Exception as e:
    print(f"执行出错: {str(e)}")
finally:
    # 关闭浏览器
    driver.quit()

注意事项

  • 确保已安装依赖包:执行pip install selenium webdriver-manager安装所需库
  • 显式等待的作用是确保页面加载完成,LocalStorage中的键已被写入,避免因页面未加载完全导致获取不到值
  • 无论是否登录YouTube,该设备ID通常都会存在于LocalStorage中,这是YouTube用于标识设备的标识符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:17:30