如何提取querySelector获取的innerText中的指定时间片段(Puppeteer场景)
Puppeteer 日期时间文本提取方案
需求背景
我正在使用Puppeteer实现任务自动化,其中需要获取文本格式的时间。我发现原有方法过于复杂,而目标页面上已经存在完整的日期时间文本,只需要将时间部分单独提取出来即可。
原始测试代码
在Web控制台运行以下代码:
document.querySelector('div[class="h1 text-success"]').innerText;
可以得到类似如下的返回结果(重新提交表单后时间会更新为最新值):
'Tuesday, October 19, 2021 5:48 PM'
核心疑问
无论时间前面的日期内容是什么,有没有方法可以精准提取出类似5:48 PM的时间部分?
补充:已有的两个方法在Web控制台中可以正常运行,但我在Puppeteer中实现时遇到了问题,也可能是我自己不知道如何正确适配。
最终可用方案
后续更新:我已经解决了适配问题,无需单独声明TimeRX常量,直接在匹配时传入正则表达式即可,最终可用代码如下:
const time = await page.evaluate(()=>document.querySelector("div.h1.text-success").textContent.match(/\d{1,2}:\d{2} (AM|PM)/i)?.[0]);
后续我还可能会将正则表达式替换为其他更推荐的实现。
内容的提问来源于stack exchange,提问作者jasonhe
相关产品推荐
相关产品推荐

