繁体   English   中英

如何在我的应用程序(Web或控制台)中进行类似Google的重新抓取

[英]How can I bring google-like recrawling in my application(web or console)

如何在我的应用程序(Web或控制台)中进行类似Google的重新抓取。 我只需要重新抓取那些在特定日期之后更新的页面。

System.Net.WebResponse中的LastModified标头仅提供服务器的当前日期。 例如,如果我在2012年1月27日下载了一个带有HTTPWebRequest的页面,并检查LastModified日期的标题,则显示服务页面时服务器的当前时间。 在这种情况下,它只是2012年1月27日。

谁能建议任何其他方法?

首先,要指出的是,你要做的事情非常困难,并且有很多研究级别的论文试图解决它(我稍后会给你链接其中的一些)。 虽然您可以使用快捷方式,例如从响应标头检查Content-Length而不下载页面的其余部分,但无法查看网站是否已更改而未对其进行爬网。 这将允许您的系统节省流量,但它不会以非常有用的方式解决您的问题。

其次,既然你关注内容,那么Last-Modified标题字段对你来说不是很有用,我甚至会说它根本不会有用。

第三,你所描述的内容有一些相互冲突的要求,因为你只对抓取已更新内容的网页感兴趣,而这与Google的工作方式不完全相同(但是,你需要类似Google的抓取)。 谷歌的抓取重点是为最常搜索/访问过的网站提供最新鲜的内容。 例如:Google很少有兴趣频繁抓取每天两次更新其内容的网站,当时该网站每天有10位访问者,而Google则更有兴趣抓取每天获得1000万访问者的网站,即使其内容更新不太常见。 经常更新其内容的网站也可能拥有大量访问者,但从谷歌的角度来看,这并不完全相关。


如果你必须发现新的网站(报道),同时你想获得你所知道的网站的最新内容(新鲜度),那么你就会有相互冲突的目标(大多数抓取工具,甚至谷歌都是这样)。 通常最终会发生的事情是,当你有更多的报道时,你的新鲜感会降低,如果你有更多的新鲜感,那么你的报道就会减少。 如果你有兴趣平衡两者,那么我建议你阅读以下文章:

这个想法的总结是你必须多次(可能几百次)抓取一个网站,以便你建立一个很好的历史记录。 一旦你有了一套很好的历史测量数据,那么你就可以使用预测模型来插入网站何时会再次更改,并在预期的更改后安排爬行一段时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM