如何持续监控某些网站并定期执行操作

Posted

技术标签:

【中文标题】如何持续监控某些网站并定期执行操作【英文标题】:How to monitor some websites continuously and perform actions regularly 【发布时间】:2013-09-22 01:28:15 【问题描述】:

我想做的是在论坛上发布我的问题(例如 Stack Overflow)并让程序专注于它。当有人在我的帖子上发布他们的答案或回复时,程序会向我发送一封电子邮件通知我。

我能想到的一种方法是使用带有file_get_contentscurlphp 来执行它。定期获取网站的内容,当帖子/回复的数量发生变化时,发送电子邮件给我。我知道这种方法很愚蠢,所以我想知道是否有其他方法可以做到这一点。

我更喜欢使用 PHP,但如果有任何其他编程语言可以实现该目标,也欢迎。

【问题讨论】:

在某些情况下,抓取网站可能是您能做的最好的事情。但是,如果站点提供 API,您应该更喜欢 API,如果没有,请查看是否提供 RSS 提要。如果您想关注 Stack Overflow,RSS 将是一个很好的方法。但是,请确保您尊重“robots.txt”,并确保您应用了合适的速率限制,否则您可能会在 IP 级别被阻止。 It's been done,有一个叫做 stackapps 的网站 @EliasVanOotegem 他只是将其用作示例。 感谢您这么快回复我。实际上 *** 只是解释我的问题的一个例子,我想在其他论坛上执行它。但是,据我所知,这些论坛没有提供那种 API。 【参考方案1】:

如果给定网站有 API,您可以使用它并创建一个 PHP 脚本来获取给定网站所需的内容。如果它没有 API,您可以简单地 file_get_contents() URL 并检查是否有更改。直接抓取网站通常被认为是一个坏主意,因此我不推荐它。

脚本启动并运行后,您可以将其安排为 cronjob 并让脚本定期运行。

至于发送电子邮件,您可以使用 SwiftMailer 的 PHPMailer -- 两者都是从 PHP 脚本中发送电子邮件的出色工具。

【讨论】:

以上是关于如何持续监控某些网站并定期执行操作的主要内容,如果未能解决你的问题,请参考以下文章

如果网站 URL 不包含任何语言代码,则执行某些操作

如何处理取消的定期付款

网站监控库[关闭]

网上银行网页抓取[关闭]

您无权执行该操作

如何从网站以 xml 格式获取数据并使用 Objective-c 解析该数据以执行操作