使用HTTP请求从冗余URI中识别Web对象

时间:2013-04-08 14:17:51

标签: r http rcurl httr

我正在努力构建一个构造不良的Web服务器日志文件,我想总结一下来分析托管网站的出席情况。不幸的是,对于我来说,网站的体系结构是混乱的,因此没有托管对象的索引(html页面,jpg图像,pdf文档等),而几个URI可以引用同一页面。例如:

  • http://www.site.fr/main.asp?page=foo.htm
  • http://www.site.fr/storage-tree/foo.htm
  • http://www.site.fr/specific.asp?id=200
  • http://www.site.fr/specific.asp?path=/storage-tree/foo.htm

等。重复的URI之间没有任何明显的规律性。

如何,从概念上和实际上,我能否有效地识别页面?当我看到问题时,我们的想法是构建一个索引,将日志的URI与从http请求构造的唯一对象标识符链接起来。有三个松散的约束:

  • 我使用R作为统计部分,因此也喜欢将它用于http处理
  • 日志包含数十万个不同的URI(其中包括表单,搜索和数据库查询),因此速度可能是一个问题
  • 如果我想能够告诉,即使在三天或一个月内,这个新的URI是一个已知的先前已识别的页面,我已经存储了我用来评估两个URI引用同一页面的功能。然后,存储空间是一个问题。

1 个答案:

答案 0 :(得分:0)

使用httr:

非常容易
library(httr)
HEAD("http://gmail.com")$url

您可能还想检查HEAD返回的status_code,因为失败通常不会被重定向。

(在这里使用httr优于RCurl的一个优点是它可以自动保留多个http调用到同一站点的连接,这会让事情变得更快)