Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web 网站监控是如何工作的?_Web - Fatal编程技术网

Web 网站监控是如何工作的?

Web 网站监控是如何工作的?,web,Web,我试图了解监视网站的变化是如何工作的,以及在其背后使用了哪些概念。 我可以考虑创建一个爬虫程序,对整个网站进行爬网,将爬网的网页与数据库中的一个存储区进行比较,如果网页已更新,则用html覆盖旧网页,如果不存在,则将其存储在数据库中。 下面是我的问题: 1-如果两个网页相同,我如何比较它们?我是否需要逐个字符比较网页的字符串等价物? 2-我需要爬网整个网站吗?假设一个网站的html页面大小为5GB,我想每小时检测一次网站的变化,所以每小时抓取和下载5GB的数据会占用大量带宽 我会写代码,我只想知

我试图了解监视网站的变化是如何工作的,以及在其背后使用了哪些概念。 我可以考虑创建一个爬虫程序,对整个网站进行爬网,将爬网的网页与数据库中的一个存储区进行比较,如果网页已更新,则用html覆盖旧网页,如果不存在,则将其存储在数据库中。 下面是我的问题: 1-如果两个网页相同,我如何比较它们?我是否需要逐个字符比较网页的字符串等价物? 2-我需要爬网整个网站吗?假设一个网站的html页面大小为5GB,我想每小时检测一次网站的变化,所以每小时抓取和下载5GB的数据会占用大量带宽

我会写代码,我只想知道监控网站的一般做法


非常感谢。

一种选择是在数据库中存储页面的散列,而不是将整个页面存储为HTML。这将允许您对照存储的值检查该值。但是你仍然需要“阅读”页面才能做到这一点是的,一个5GB的网站仍然会“下载”5GB来做到这一点

我假设您只保留页面、URL、上次更新、内容哈希等的元数据,您还没有真正说明为什么要这样做

也许正如Martin Joneš所建议的,most只需获取页面标题并检查最后一个修改参数


我还假设您只在您拥有/运行的站点上执行此操作。没有什么比naff“营销”机器人更让我讨厌的了,它们在我的网站上爬行,增加了我的带宽使用,对我来说是零价值的。他们只是在消耗我的带宽。

我认为它使用最后一个修改头来确定任何更改。如果有爬网请求,它会重新爬网。谢谢你的详细评论。我这样做只是为了教育目的,并试图了解爬行是如何工作的,尤其是搜索引擎是如何爬行数百万个网站的。另外,最后一个修改标题对我来说是新的。我认为它只能用来测试一个网页的最后修改时间,而不是整个网站。是否可以测试网站是否使用标题等内容添加了新网页/内容,而不是对整个网站进行爬网?为此,您可以检查sitemap.xml,如果您可以将其与旧版本进行比较,您已经存储了。假设站点正在将所有页面添加到其sitemap.xml,但并非所有页面都这样做。但除此之外,真的没有一个简单的方法。页面本身就是实体,因此除了站点地图(如果实现的话)之外,不会对它们进行集中检查。搜索引擎使用网站地图,但他们也索引页面上的单词,因此他们清楚地下载了整个页面。他们还使用超链接来确定站点结构。