1

我想在不“刮掉”页面的情况下做到这一点,即使有一种方法不是严格通用的。环顾一番后,我发现您可以从标题中获取最后修改日期,但我发现这没什么用,因为对于许多网站来说,返回的日期只是过去几秒钟的时间。这似乎是因为页面上的一些小变化(如评论)。

4

2 回答 2

2

检查该站点是否提供原子提要,它应该具有发布日期。例如,您的问题的提要有:

    # removed stuff
    <entry>
        # trimmed some more stuff
        <author>
            <name>Hassan</name>
            <uri>https://stackoverflow.com/users/377628</uri>
        </author>
        <link rel="alternate" href="https://stackoverflow.com/questions/19384363/is-there-a-way-to-check-the-day-an-article-was-published-on-an-arbitrary-website" />
        <published>2013-10-15T14:52:55Z</published>
        <updated>2013-10-15T14:52:55Z</updated>
        # more stuff here
于 2013-10-15T14:57:45.693 回答
2

为了在任何站点上可靠地可用,任何给定的信息都必须是 HTTP 标头块的一部分。“首次发布”或“已创建”或类似内容没有 HTTP 标头。最好的可用值是“Last-Modified”,因为这是在 HTTP 上下文中唯一有意义的值。

举例来说,静态页面可能具有文件系统创建日期,但整个内容可能已被替换。文件系统的“创建日期”不需要更改,但最后修改日期会。类似地,对于动态创建的页面,创建页面的软件必须依赖系统内的某个日期,但同样,内容可能在创建后被部分或完全替换。困难在于决定哪些更改构成新发布的页面,或者只是旧页面的修改版本。

根据您的问题,某些联合格式(如 Atom 或 RSS)可能在其内容中包含“发布日期”,但这不会是 HTTP haders 的一部分,因此在任何任意站点上都不可用。

您可以在此处找到 HTTP 标头参考

于 2013-10-15T15:16:07.100 回答