如何有效识别2个URL将返回不同的内容?

时间:2014-11-07 22:04:42

标签: ruby-on-rails http url web web-crawler

我想检查2个URL是否不同或相同,即HTTP响应是否相同。我们说我有一个网址http://www.example.com/some/path?q=abc&time=12334。然后,我从此http://www.example.com/some/path创建一个基本URL。现在我想检查这些URL是指向同一段内容,还是指向不同的内容。通常它们是相同的,但如果响应基于查询参数,它们将会不同。这是一个例子:

https://www.google.co.in/search?q=techcrunch&source=lnms&tbm=ischhttps://www.google.co.in/search是不同的网址。显而易见的方法是执行GET请求并比较响应(或者可能是页面标题,实际上可以工作),或维护此类网站的缓存列表(并保持更新 - 容易出错并且更具反应性)。

有更有效的方法吗?我尝试比较"内容长度"通过执行HEAD请求的2个请求,但很多人不必返回它。有没有更多可能解决这个问题的方法?

1 个答案:

答案 0 :(得分:0)

你可以尝试一些简单的事情。

require 'net/http'
first = Net::HTTP.get('google.com', '/')
second = Net::HTTP.get('twitter.com', '/')
first == second #=> false