【问题标题】:Identifying content-defining keys in URL query strings识别 URL 查询字符串中的内容定义键
【发布时间】: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


    【解决方案1】:

    克里斯蒂安,你有一个有趣的问题! :-)

    您可以使用Canonical-Tag 作为附加提示。如果它在您正在测试的网站上使用并且是否正确实施(您可以在之前手动检查,每页)。首先:您将在“原始 URL”上检查其目标位置。第二步:跳过一些参数后返回的任何页面仍然指向相同的规范 URL 可能具有相同的主要内容。

    另一个想法:您已经在使用词频数组。根据我的经验,您可以在该数组的顶部 X 元素上使用 levenshtein distance 之类的东西,以便在两个文档的相似程度方面获得更柔和的分数。您可以定义(经过一些实验)足够相似/不够相似(甚至每页,取决于您的确切目标)的阈值。

    [编辑]

    好吧,实现起来可能不是那么简单(这取决于您的编程技能和经验),但经过一段时间的思考,我认为如果您在term vector model 的帮助下检查文档相似性,您将获得最佳结果。如果您在向量中包含 HTML 标记(在您想要测试整个文档的相似性的设置中),您甚至可以对此进行改进。

    【讨论】:

    • theafh,谢谢!我开始考虑规范链接元素。它本质上是通过解决方案来实现的,但这不是强制性的,而且使用起来似乎也不是很普遍——至少到目前为止我的观察是这样。是的,除此之外,我还可以进一步改进关于网页相似性的启发式方法。在最好的情况下,我将能够提取页面的主要内容(没有 cmets、广告等)并仅使用该页面进行比较。但这本身就是一个研究问题:)。所以我的主要问题是复杂性和有效性之间的权衡。我喜欢保持简单:)。
    • 回复。编辑:这就是我在复杂性和有效性之间进行权衡的意思。目前,我不是在寻找一个完美的解决方案,一个“好的”启发式应该就可以了。我主要关心的是我是否遗漏了任何明显的东西(比如规范的 URL,如果它是强制性的)。但似乎并非如此。如果明天之前没有任何进一步的答案,我会将您的答案标记为已接受的答案。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2018-11-29
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多