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

如何在NodeJS中获取其他网站的lastModified属性

获取网站最后修改日期的Node.js解决方案

方法1:通过HTTP响应头获取(最可靠)

浏览器开发者工具中看到的网站最后修改日期,本质来自HTTP响应头的Last-Modified字段,直接提取这个字段比读取document.lastModified更准确——后者是浏览器根据当前DOM生成的时间,并非服务器记录的页面实际修改时间。

用Puppeteer实现的修正代码:

const puppeteer = require('puppeteer');

async function getLastModifiedDate() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  // 监听响应事件,提取目标页面的Last-Modified头
  let lastModified;
  page.on('response', (response) => {
    if (response.url() === 'https://www.tbsnews.net/economy/bsec-chairman-stresses-restoring-investor-confidence-mutual-funds-500126') {
      lastModified = response.headers()['last-modified'];
    }
  });

  await page.goto('https://www.tbsnews.net/economy/bsec-chairman-stresses-restoring-investor-confidence-mutual-funds-500126');
  
  console.log('服务器返回的最后修改时间:', lastModified);
  
  await browser.close();
}

getLastModifiedDate();

方法2:提取页面内显示的修改时间

如果网站未返回Last-Modified响应头,但页面内有明确显示的发布/更新时间(比如文章下方的时间戳),可以直接定位DOM元素提取:

const puppeteer = require('puppeteer');

async function getPageDisplayedModifiedTime() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  
  await page.goto('https://www.tbsnews.net/economy/bsec-chairman-stresses-restoring-investor-confidence-mutual-funds-500126');
  
  // 根据页面实际结构调整选择器(可从Chrome开发者工具复制)
  const modifiedTime = await page.evaluate(() => {
    const timeElement = document.querySelector('.article__meta-time');
    return timeElement ? timeElement.textContent.trim() : '未找到修改时间';
  });
  
  console.log('页面显示的最后修改时间:', modifiedTime);
  
  await browser.close();
}

getPageDisplayedModifiedTime();

原代码无效的原因

你之前调用的document.lastModified是浏览器基于当前DOM构建时刻生成的时间,和服务器记录的页面实际修改日期无关,所以会返回代码执行时的时间,而非目标网站的真实修改时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:01:16