【问题标题】:PuppeteerSharp is changing date format got from textContentPuppeteerSharp 正在更改从 textContent 获取的日期格式
【发布时间】:2021-08-18 06:53:45
【问题描述】:

所以我有点问题,这就是 html 部分的样子:

<span class="element">date: </span>2021-08-18T08:38:48.956

所以我想在</span> 标签之后获取日期,但是 Puppeteer 会更改格式,即使我将日期作为 textContent 获取

这是我的部分代码:

string dateXpath = "//span[text()='date: ']/following-sibling::text()";
var dateElement = await _page.WaitForXPathAsync(dateXpath);
var dateTextElement = await dateElement.GetPropertyAsync("textContent");
string date = dateTextElement.ToString();

预计date = JSHandle:2021-08-18T08:38:48.956

结果date = JSHandle:18.08.2021 08:38:48

有没有办法绕过Puppeteer的JS改日期?

@更新

_page.EvaluateFunctionAsync<string>("e => e.textContent", dateElement);

给:08/18/2021 08:38:48

【问题讨论】:

    标签: javascript .net date puppeteer


    【解决方案1】:

    解决方案:

    string dateXpath = "//span[text()='date: ']/following-sibling::text()";
    var dateElement = await _page.WaitForXPathAsync(dateXpath);
    DateTime date = _page.EvaluateFunctionAsync<DateType>("e => e.textContent", dateElement);
    date.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss")
    

    这就是我的解决方案不起作用的原因(我认为):

    当我通过以下方式获取它时,Puppeteer 将整个字符串解析为 DateTime: _page.EvaluateFunctionAsync

    然后它将格式化的 DateTime 解析回字符串,因为我想要一个字符串:_page.EvaluateFunctionAsync&lt;string&gt;

    所以该问题的解决方案是获取 DateTime 而不是字符串,并使用我们的格式 ("yyyy'-'MM'-'dd'T'HH':'mm':'ss") 将其解析为字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      相关资源
      最近更新 更多