网页切片算法的若干问题
发布时间:2008-04-17 13:10:00
这是我研究网页切片算法的一个汇总想法。
之前我写过:一种面向搜索引擎的网页分块、切片的原理,实现和演示,随着工作的深入,逐渐碰到以下问题:
网页切片的粒度问题:
网页切片算法的目的不是精确找到所需要的内容,而是识别划分网页的各种功能区域,导航区,链接区,内容,页脚区和广告区等。
网页切片的网页对象:
互连网纱功能的网页大概有2种类型,目录型和内容型;随着搜索引擎的发展,网站结构逐渐向扁平化的方向发展,车东 对此也做出了数据验证,而且随着显示器分辨率的不断提高,内容和目录结合型的网页呈增加趋势,天极的网页涉及,可以说是其中的典范。
网页切片算法的对象应该是针对:内容型和内容目录混合型。对不同网页,应该有个识别算法,应该包括哪些标准?
网页内容区最大范围识别:
从切片的粒度可以看出,应该把内容区作为一个部分单独切出来。根据一般的网页设计规律,一般有2种容纳内容区的方式:1、包含型(如blog ) 2、并列型(如bbs帖子)。
如果处理分页的内容型网页:
现在大多数网站为了改善用户体验和增加页面展示次数的需要,对网页做了分页处理,这部分需要设别出来。
无意间看到了:VIPS:基于视觉的Web页面分页算法 ,从理论上证明了这种方法的可行性。可是实现起来有很多障碍,正如这位所说的:
我那天用浮动的 用绝对位置定位代替 定位,并且在客户端的JavaScript中动态排列。客户端的对象用脚本动态生成插入。
弄死他。看他怎么分析。
这样的算法太依赖于具体实现了,很难有好的解决办法。
况且,现在依赖客户端脚本展现动态表现力慢慢开始流行,这个算法很难适应未来的潮流。
就拿最简单的,我有一个类似于OutLook工具条的页面风格,都是脚本生成的,我看他怎么分析!
视觉分析只能落脚到视觉上,只能对页面的静态画面作分析才能得到正确的条块分割,分割条块是容易的简单算法就能做到,但是要把这些内容归结到分割到的条块是难的。
好的办法只有一个,模拟鼠标击键,击键处的对象返回响应,这在IE能够实现的。这样才能取得分割好条块后的对象归属。
我怎么想都觉得我的简单算法都要比文中的算法强多了。
视觉依靠画面分割条块,很简单,对空白进行膨胀-缩小算法,这样留白就能逐渐清晰出来,文字就模糊了。然后作模糊处理,然后用一个亮度阈值把图片转换成二值图,然后作一个矢量化处理,留下线条。归结到90度和0度上去,得到一个条块分割的矢量图。
然后,每一块中按照密度用鼠标点击模拟获得对象!这样就可以完成了条块归纳了。
干吗要分析HTML呢?情况多得很,根本分析不过来。
我目前的进展是:可以识别 导航区、链接区、页脚区。
对内容区的分析是个难点,鉴于我自己的需要,只要找到最大的内容区就可以了。
这段时间对算法的一个体会就是,算法就是解决特定问题的方法。教科书上的算法大都是最一般性,常用性的方法的说明。
套句俗话,能解决实际问题的方法就是好方法。但能把我们解决的问题用数学模型表达出来仍是一个不断提高算法水平的基本要求。


猜你喜欢
- 今天在写 mysql 遇到一个比较特殊的问题。 mysql 语句如下: update wms_cabinet_form set cabf_e
- 本文会把学习过程中遇到的一些小问题和解决办法放在这里,以便于大家能够更好地学习python。一、Python的异常处理因为想到自己不断尝试写
- 本文实例讲述了flask框架自定义过滤器。分享给大家供大家参考,具体如下:除了一些内置的join length safe等过滤器外, fla
- 今天群友提出一个问题:给出Word示例如下:对于这种嵌入文件在Word中都属于ole文件。下面我们假设需要读取每个嵌入的Excel文件中的p
- 为什么要做接口自动化框架1、业务与配置的分离2、数据与程序的分离;数据的变更不影响程序3、有日志功能,实现无人值守4、自动发送测试报告5、不
- 如下所示:# coding=gbkfrom PIL import Imageimport numpy as np# import scipy
- 目前广泛使用的图像分类数据集之一是MNIST数据集。如今,MNIST数据集更像是一个健全的检查,而不是一个基准。为了提高难度,我们将在接下来
- innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL磁盘写入策略以及数
- 一、背景大家都知道gevent的机制是单线程+协程机制,当遇到可能会阻塞的操作时,就切换到可运行的协程中继续运行,以此来实现提交系统运行效率
- 在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象。这是因为:opencv的接口使用BGR,而matp
- 技术在进步,思维在发展,网页上的花样当然也要一天天地赶时髦了。在“滚动字符”、“跑马灯”已成平常的今天,网页上还能变出新花样吗?◆制作鼠标指
- 目录1.闭包:用函数代替类2.访问定义在闭包的内的变量1.闭包:用函数代替类有时我们会定义只有一个方法(除了__init__()之外)的类,
- 如果你是一位前端开发工程师,对“跨平台”一词应该不会感到陌生。像常见的前端框架:比如React、Vue、Angular,它们可以做网页端,也
- 相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就
- 常用指令agent指令-bind=0.0.0.0 指定consul所在机器的ip地址-http-port 指定web接口服务端口-clien
- 查看数据库状态:service mysqld status 启动数据库:service mysqld start&
- SUBSTR函数是用来截取数据库某一列字段中的一部分。 在各个数据库的函数名称不一样(真是蛋疼,后发明的数据库难道不能同先发明的一样吗?)
- 索引 经常要查询的语句,则给它建一个索引 表连接 select T_Oders as o join T_Customers as C on
- asp使用WScript.Shell获取电脑的网络配置信息Option Explicit Dim WSHShe
- MySQL是一种常见的关系型数据库管理系统,常被用于各种应用程序中存储数据。当涉及到大量的数据时,数据库查询的性能就成了关键因素,这时就需要