【发布时间】:2014-09-04 00:18:57
【问题描述】:
我正在(有点)抓取网址,其中许多网址使用查询字符串来识别内容,例如 YouTube 视频。通常只有查询字符串中使用的一小部分键用于标识内容,有时整个查询字符串根本不重要。例如,在大多数 YouTube URL 中,查询字符串键 v 指定视频,而 hd(如果存在并设置为 1)以高清播放相同的视频。
我现在想找出查询字符串中的哪些键对内容确实很重要。为此,我目前将与原始 URL 对应的页面(例如,http://www.youtube.com/watch?v=kA0pkemJxMc&hd=1)与我收到的页面进行比较,如果我逐步删除每个单独的查询字符串键(http://www.youtube.com/watch?v=kA0pkemJxMc 和 http://www.youtube.com/watch?hd=1)。如果页面相同,我认为密钥并不重要。
问题是,什么时候两个页面是相同的?目前我测试了两件事:(a)如果页面的标题不同,我假设页面不同。它通常已经足够好了,但我已经偶然发现了各种总是使用相同通用标题的网站。 (b) 我提取两个页面的可见文本并计算前 k 个最常见的单词。如果这两组不同,我假设页面不同。效果也不错,但许多页面包含动态内容(例如,侧边栏 DIV 中的 Facebook 消息的最新推文或其他内容),因此会影响最常用的单词集。
我想没有 100% 万无一失的方法来确定重要的,即内容定义(也许这甚至可以解释)查询字符串键。但是,我想知道如何改进我的机制。
【问题讨论】:
标签: html http url web-crawler search-engine