1

我正在为一个结构不正确的网络服务器日志文件而苦苦挣扎,我想总结一下以分析托管站点的出席情况。对我来说不幸的是,该站点的架构很混乱,因此没有托管对象(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 引用同一页面的特性。然后,存储空间是一个问题。
4

1 回答 1

0

使用 httr 这很容易:

library(httr)
HEAD("http://gmail.com")$url

您可能还想检查status_codeHEAD 返回的内容,因为通常不会重定向失败。

(这里使用 httr 而不是 RCurl 的一个优点是它会自动保留对同一站点的多个 http 调用之间的连接,这使事情变得更快)

于 2013-04-08T16:01:15.897 回答