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

PuppeteerSharp获取textContent时自动修改日期格式如何解决

问题原因

你遇到的日期格式自动转换问题不是PuppeteerSharp主动修改导致的,根源有两个:

  • 你启动的Chromium实例默认继承了运行环境的区域语言设置,会自动把识别到的ISO标准日期格式转换为对应区域的本地化展示格式
  • 页面本身的前端脚本可能在DOM加载完成后,主动将原始日期文本转换为了本地化格式
可行解决方案

方案1:强制指定浏览器时区和语言(最推荐,无侵入)

启动Puppeteer时添加参数,固定使用UTC时区和英文语言,避免浏览器自动做本地化转换:

var launchOptions = new LaunchOptions
{
    Args = new[] { "--lang=en-US", "--timezone=UTC" }
};
using var browser = await Puppeteer.LaunchAsync(launchOptions);

配置完成后再用你原来的textContent读取逻辑即可拿到原始ISO格式日期。

方案2:直接截取原始HTML(兼容性最高,不受页面脚本/浏览器设置影响)

直接获取目标节点父元素的原始HTML,手动切割出日期内容,完全绕开浏览器的文本格式转换逻辑:

// 定位到span的父节点p
var parentElement = await _page.WaitForXPathAsync("//span[text()='date: ']/parent::p");
// 读取父节点的原始HTML内容
string parentHtml = await _page.EvaluateFunctionAsync<string>("e => e.innerHTML", parentElement);
// 切割出span标签后的原始日期字符串
string rawDate = parentHtml.Split("</span>")[1].Trim();

方案3:禁用页面JavaScript(仅适合静态页面)

如果目标日期是服务端直出、不需要前端脚本渲染,可以直接禁用页面JS,彻底避免前端脚本修改日期内容:

await _page.SetJavaScriptEnabledAsync(false);
// 后续再加载页面、读取日期即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:00:01