simHtml包用于计算Web页面相似度,用于web爬虫等

cckuailong · 2020-01-19 22:10:45 · 3515 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2020-01-19 22:10:45 的主题,其中的信息可能已经有所发展或是发生改变。

simHtml

介绍

simHtml包提供了一些用于计算Web页面相似度的函数

安装

快速安装:

go get -u github.com/cckuailong/simHtml

原理

网页结构相似度

使用序列比较方法(最长公共子序列)来计算dom树的相似度。

元素类型相似度

计算class 和 style的相似度。

整合 网页结构相似度 和 元素类型相似度

整合算法:

k * structural_similarity(document_1, document_2) + (1 - k) * style_similarity(document_1, document_2)

相似度取值在0-1之间

k取值建议

使用 k=0.3 可以获得更好的结果。 元素类型相似度 包含的信息更多,更精确。

函数

  • GetSimFromFile(file1, file2 string) float64
    In [1]: 1.html's content is
     '''
     <html>
        <h1 class="title">First Document</h1>
        <ul class="menu">
            <li class="active">Documents</li>
            <li>Extra</li>
        </ul>
     </html>
    '''

    In [2]: 2.html's content is
    '''
    <html>
        <h1 class="title">Second document Document</h1>
        <ul class="menu">
            <li class="active">Extra Documents</li>
        </ul>
    </html>
    '''

    In [3] import "github.com/cckuailong/simHtml/simHtml"

    In [4]: simHtml.GetSimRate("./1.html", "./2.html")
    Out[4]: 0.9727272727272727
  • GetSimFromStr(str1, str2 string) float64

  • GetSimFromUrl(url1, url2 string) float64


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3515 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传