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

VB.NET转Python:YouTube爬虫响应内容不一致问题排查

问题原因与解决方法

核心差异:Cookie处理逻辑完全相反

你的VB.NET代码和Python代码在Cookie处理上有本质区别:

  • VB.NET中Dim cookies As CookieCollection = Nothing只是未手动指定Cookie集合,但默认情况下,请求会接收服务器发送的Set-Cookie响应头,YouTube服务器会根据客户端接受Cookie的行为返回适配的完整内容。
  • 而Python代码中r.cookies.set_policy(BlockCookies())是完全阻止所有Cookie的接收和发送,YouTube服务器识别到客户端拒绝Cookie后,会返回结构简化的页面(不包含直播观看数等关键数据)。

修复步骤

  • 移除Cookie阻止策略
    删除Python代码中的r.cookies.set_policy(BlockCookies()),让requests.Session自动处理Cookie(默认会接收并保存服务器发送的Cookie,后续请求自动带上)。修改后的代码:

    r = requests.Session()
    response = r.get("https://m.youtube.com/watch?v=" + videoID, headers=headers, proxies=proxies)
    print(response.text)
    
  • 再次核对请求头细节
    即使你认为请求头一致,也请重点检查以下字段:

    • User-Agent:必须是移动端浏览器标识(比如Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1),否则m.youtube.com可能跳转到桌面版页面。
    • Accept:确保包含text/html,application/xhtml+xml等HTML内容类型,避免服务器返回JSON或其他非HTML格式。
    • Accept-Language:和VB.NET请求中的字段值保持一致,不同地区的内容结构可能存在差异。
  • 验证响应内容
    修复后打印response.text,检查是否包含直播观看数相关的字段(比如viewCount或移动端页面特有的直播数据标签)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:55:45