CN101196918A - 一种分页方法及分页装置 - Google Patents
一种分页方法及分页装置 Download PDFInfo
- Publication number
- CN101196918A CN101196918A CNA2007103016497A CN200710301649A CN101196918A CN 101196918 A CN101196918 A CN 101196918A CN A2007103016497 A CNA2007103016497 A CN A2007103016497A CN 200710301649 A CN200710301649 A CN 200710301649A CN 101196918 A CN101196918 A CN 101196918A
- Authority
- CN
- China
- Prior art keywords
- web page
- page
- dom tree
- html
- news
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例中公开了一种分页方法和分页装置,通过对网页类型进行区分,并在进行分页的过程中,针对不同类型网页的不同特性设置相应的网页转换算法和网页分页算法,如此,通过对不同类型的网页采用不同的网页转换算法进行HTML元素到XHTML元素的转换、并采用不同的网页分页算法对所述转换的结果进行分页,使得本发明实施例所得到的分页结果更科学、合理,从而能够达到改善用户体验的目的。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种分页方法及分页装置。
背景技术
随着网络技术的发展,无线互联网技术也在迅速地发展,通过无线设备人们不仅可以随时随地地与他人联系,还可以随时随地地访问互联网上的资源。
目前,互联网上最丰富的资源是网页,这些网页是专为个人计算机(PC,Personal Computer)设计的超文本标记语言(HTML,Hypertext MarkupLanguage)格式的,由于无线设备屏幕大小、处理能力和网络带宽的限制,这些HTML格式的网页无法直接在无线设备上进行浏览。针对这种情况,人们设计了另一种标记语言,称为扩展的超文本标记语言(XHTML,Extended Hypertext Markup Language),来撰写能够在无线设备上显示的网页。
无线设备中存在一个类似于PC上的搜索引擎来帮助用户搜索无线互联网上的信息,由于目前HTML网页数量远远大于XHTML网页数量,因此,用户搜索的结果大部分是以HTML网页的形式存在的,这就需要提供一套网页转换系统,用于自动地将HTML网页转换成XHTML网页,以供无线互联网用户直接在无线终端上进行浏览。
PC和无线设备的一个重要区别是:无线设备的内存容量小,一个完整的HTML网页转化为XHTML网页后不能直接在无线设备上浏览,而是需要进行分页、存储,无线设备每次浏览其中的一个页面,通过翻页浏览上下页。可见,分页技术是网页转换系统中的一项关键技术。
现有分页技术的工作过程是:首先,将HTML网页中的HTML元素转换为XHTML元素,得到原始的XHTML网页;然后根据设定的页面标准行数,在向页面写入XHTML元素时,统计XHTML元素累计占用的行数,当XHTML元素累计占用的行数超过设定的页面标准行数时,分出一个新的页面,并继续向该新页面写入XHTML元素。如此循环,直至将XHTML网页中的XHTML元素均写入相应的页面,此时,将得到若干个页面。在显示时,将按照顺序从第一个页面开始显示。
上述现有分页技术对所有网页均采取了同样的方式进行分页,没有针对不同网页类型的不同特点进行分页,并且,在进行显示时,只能最先显示第一个页面的内容,使得用户无法最先看到网页中最重要的内容,也无法迅速阅读到自己关注的内容。
并且,由于网页通常是分块设计的,块内元素之间存在很大的关联性,这些元素应尽量保留在同一个页面中,但是,现有分页技术只要累计占用的行数超过设定的页面标准行数时就会分出一个新的页面,无法保证XHTML元素之间的关联性。
可见,采用现有分页技术得到的分页结果缺乏科学性和合理性,导致用户体验较差。
发明内容
有鉴于此,本发明实施例提供一种分页方法,使得分页结果更科学、合理,从而改善用户体验。
本发明实施例还提供一种分页装置,使得分页结果更科学、合理,从而改善用户体验。
为达到上述目的,本发明实施例的技术方案具体是这样实现的:
一种分页方法,其特征在于,包括:
将超文本标记语言HTML网页解析为Dom树;
对Dom树进行分析,判断所述HTML网页是新闻网页还是普通网页;
如果是新闻网页,则按照预先设置的新闻网页转换算法将所述Dom树中的HTML元素转换为相应的扩展的超文本标记语言XHTML元素,并按照预先设置的新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面;
如果是普通网页,则按照预先设置的普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素,并按照预先设置的普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面。
进一步地,在对所述转换后的Dom树进行分页,得到至少一个页面之后,可以包括:
确定所述转换后的Dom树中最重要的信息块所处的页面,将所述页面作为最佳页面,所述最佳页面用于最先显示。
所述对Dom树进行分析,判断所述HTML网页是新闻网页还是普通网页可以包括:
判断所述Dom树中是否存在正文元素,当存在正文元素时,判定所述HTML网页为新闻网页,当不存在正文元素时,判定所述HTML网页为普通网页。
所述按照预先设置的新闻网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素可以包括:
根据预先设置的正文判断条件确定所述Dom树中的正文元素、根据预先设置的标题判断条件确定所述Dom树中的标题元素,并确定所述Dom树中的形式标题;
根据所述正文元素、标题元素和形式标题,构造一颗新Dom树;
将新Dom树中的HTML元素转换为相应的XHTML元素。
所述根据预先设置的正文判断条件和标题判断条件确定所述Dom树中的正文元素和标题元素可以包括:从所述Dom树的根节点出发,按照深度优先遍历算法查找所述Dom树,当找到满足所述正文判断条件的节点时,将所述节点确定为新闻网页的正文元素,在正文元素的父节点与根节点之间的路径上以及所述路径左边的节点之间寻找符合标题判断条件的元素作为标题元素;
所述根据正文元素、标题元素和形式标题,构造一颗新Dom树包括:保留以正文元素为根节点的子树、以标题元素的父元素为根节点的子树以及形式标题,将所述Dom树中除所述两棵子树和形式标题之外的其余元素全部删除;新建一个html元素、一个head元素和一个body元素,将形式标题作为head元素的子元素、标题元素和正文元素分别作为body元素的第一个子元素和第二个子元素、head元素和body元素作为html元素的第一个子元素和第二个子元素,html元素作为根元素,得到新Dom树;
所述将新Dom树中的HTML元素转换为相应的XHTML元素包括:对于所述新Dom树中的HTML元素,如果所述HTML元素存在对应的XHTML元素,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
所述按照预先设置的新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面可以包括:
设定新闻页面行数的标准值、新闻页面行数的最大值和新闻页面一行的标准字数;
遍历Dom树,根据文本元素中文字的字数和所述设定的新闻页面一行的标准字数计算文字占据的行数;
在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
所述按照预先设置的普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素可以包括:
对于所述新Dom树中的HTML元素,如果所述HTML元素存在对应的XHTML元素,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
所述按照预先设置的普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面可以包括:
设定普通页面行数的标准值、普通页面行数的最大值和普通页面一行的标准字数;
遍历Dom树,统计自动换行的元素的个数,确定所述普通网页占据的行数;
在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
所述确定所述转换后的Dom树中最重要的信息块所处的页面可以包括:
对于新闻网页,将新闻正文对应的块作为所述最重要的信息块,将标题元素所在的页面作为最佳页面;
对于普通网页,将Dom树中子元素链接的文字较长、且所述链接为连续的元素确定为最重要的信息块,将所述元素所在的页面作为最佳页面。
一种分页装置,包括:
解析模块,用于将超文本标记语言HTML网页解析为Dom树;
页面类型判断模块,用于分析Dom树,判断所述Dom树对应的HTML网页是新闻网页还是普通网页,如果是新闻网页,由新闻网页转换模块处理,如果是普通网页,由普通网页转换模块处理;
新闻网页转换模块,用于按照新闻网页转换算法将所述Dom树中的HTML元素转换为相应的扩展的超文本标记语言XHTML元素,所述转换后的Dom树由新闻网页分页模块处理;
新闻网页分页模块,用于按照新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面;
普通网页转换模块,用于按照普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素,所述转换后的Dom树由普通网页分页模块处理;
普通网页分页模块,用于按照普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面。
该装置中可以进一步包括:
最佳页面确定模块,用于确定所述转换后的Dom树中最重要的信息块所处的页面,将所述页面作为最佳页面。
所述页面类型判断模块,还可以用于判断所述Dom树中是否存在正文元素,当存在正文元素时,判定所述HTML网页为新闻网页,当不存在正文元素时,判定所述HTML网页为普通网页。
所述新闻网页转换模块可以包括:
判断单元,用于根据预先设置的正文判断条件确定所述Dom树中的正文元素、根据预先设置的标题判断条件确定所述Dom树中的标题元素,并用于确定所述Dom树中的形式标题;
新Dom树构造单元,用于根据所述正文元素、标题元素和形式标题,构造一颗新Dom树
转换单元,用于将新Dom树中的HTML元素转换为相应的XHTML元素。
所述判断单元,还可以用于从所述Dom树的根节点出发,按照深度优先遍历算法查找所述Dom树,当找到满足所述正文判断条件的节点时,将所述节点确定为新闻网页的正文元素,在正文元素的父节点与根节点之间的路径上以及所述路径左边的节点之间寻找符合标题判断条件的元素作为标题元素;
所述新Dom树构造单元,还用于保留以正文元素为根节点的子树、以标题元素的父元素为根节点的子树以及形式标题,将所述Dom树中除所述两棵子树和形式标题之外的其余元素全部删除;新建一个html元素、一个head元素和一个body元素,将形式标题作为head元素的子元素、标题元素和正文元素分别作为body元素的第一个子元素和第二个子元素、head元素和body元素作为html元素的第一个子元素和第二个子元素,html元素作为根元素,得到新Dom树;
所述转换单元,还用于判断所述新Dom树中的HTML元素是否存在对应的XHTML元素,如果存在,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
所述新闻网页分页模块,还可以用于设定新闻页面行数的标准值、新闻页面行数的最大值和新闻页面一行的标准字数;遍历Dom树,根据文本元素中文字的字数和所述设定的新闻页面一行的标准字数计算文字占据的行数;在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
所述普通网页转换模块,还可以用于判断所述Dom树中的HTML元素是否存在对应的XHTML元素,如果存在,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
所述普通网页分页模块,还可以用于设定普通页面行数的标准值、普通页面行数的最大值和普通页面一行的标准字数;遍历Dom树,统计自动换行的元素的个数,确定所述普通网页占据的行数;在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
所述最佳页面确定模块可以包括:
新闻最佳页面确定单元,用于将新闻正文对应的块作为所述最重要的信息块,将标题元素所在的页面作为最佳页面;
普通最佳页面确定单元,用于将Dom树中子元素链接的文字较长、且所述链接为连续的元素确定为最重要的信息块,将所述元素所在的页面作为最佳页面。
由上述技术方案可见,本发明实施例提出的分页方法和分页装置,通过对网页类型进行区分,并在进行分页的过程中,针对不同类型网页的不同特性设置相应的网页转换算法和网页分页算法,如此,通过对不同类型的网页采用不同的网页转换算法进行HTML元素到XHTML元素的转换、并采用不同的网页分页算法对所述转换的结果进行分页,使得本发明实施例所得到的分页结果更科学、合理,从而能够达到改善用户体验的目的。
并且,本发明实施例在设置网页分页算法时,通过在分页时将从属于同一个父节点的各子结点置于同一页面内,保证了具有关联的元素尽量被分在同一个页面中,从而保证了XHTML元素之间的关联性,这也增强了本发明分页结果的科学性和合理性。
此外,本发明实施例在对XHTML网页执行分页操作,得到至少一个页面之后,通过判断该XHTML网页中最重要的信息块所处的页面,并将该页面作为最佳页面进行显示,使得用户能够最先看到网页中最重要的内容,而网页中最重要的内容通常也是用户最关注的内容,因此,能够有效地改善用户体验。
附图说明
图1为本发明实施例中分页方法的流程示意图;
图2为本发明实施例中一较佳判断网页类型的方法流程示意图;
图3为本发明实施例中一较佳新闻网页转换算法的流程示意图;
图4为本发明实施例中分页装置的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明实施例提出的分页方法和分页装置,通过对网页类型进行区分,并在进行分页的过程中,针对不同类型网页的不同特性设置相应的网页转换算法和网页分页算法,如此,通过对不同类型的网页采用不同的网页转换算法进行HTML元素到XHTML元素的转换、并采用不同的网页分页算法对所述转换的结果进行分页,使得本发明实施例所得到的分页结果更科学、合理,从而能够达到改善用户体验的目的。
本发明实施例之所以提出一种针对网页的类型进行分页的技术,是因为:不同类型的网页具备不同的特性,不同类型的网页中重要信息块所处的位置也存在各自的特点,充分利用不同类型网页的不同特点,采取有针对性的分页技术进行分页,就能使分页结果更科学、合理。
本申请的发明人在长期的实践过程中发现:网页大致可分为新闻网页和普通网页两大类。其中:
新闻网页是指:包含了新闻标题以及正文内容的网页。新闻网页的特点是存在大量的文本,这些文本是新闻的正文,包含大量关于该新闻的信息,是新闻网页中信息量最大的部分,占了网页很大的空间,用户对新闻网页的关注集中在这些文本上,对文本之外的信息关注度较小。
普通网页是相对于新闻页面而言,普通网页中可能并不直接包含像新闻网页那样的包含大量信息的新闻正文,而是包含许多链接,用户点击这些链接就能转到对应的网页中,例如:可能转到另一个普通网页或一个新闻网页中。
可见,新闻网页和普通网页拥有各自不同的特性,在设置网页转换算法和网页分页算法时,只要能够针对所述不同的特性,采取相应的技术手段保证分页的科学性和合理性即可。
下面对本发明实施例所提供的分页方法和分页装置进行详细说明。
图1为本发明实施例中分页方法的流程示意图。参见图1,该方法包括:
步骤101:将HTML网页解析为Dom树。
步骤102:对Dom树进行分析,判断所述HTML网页是新闻网页还是普通网页,如果是新闻网页,继续执行步骤103;如果是普通网页,转入步骤105。
步骤103:按照预先设置的新闻网页转换算法将Dom树中的HTML元素转换为相应的XHTML元素。
步骤104:按照预先设置的新闻网页分页算法对转换后的Dom树进行分页,得到至少一个页面。
步骤105:按照预先设置的普通网页转换算法将Dom树中的HTML元素转换为相应的XHTML元素。
步骤106:按照预先设置的普通网页分页算法对转换后的Dom树进行分页,得到至少一个页面。
至此,结束本发明实施例的分页方法。
上述步骤102是对Dom树进行分析,判断HTML网页是新闻网页还是普通网页。在具体实现所述判断时,可以根据新闻网页和普通网页的不同特性,通过判断所述HTML网页对应的Dom树是否满足相应的特性来进行判断。例如:可以根据该网页中是否存在新闻的正文来判断该网页是新闻网页还是普通网页。下面通过一个示例说明如何判断网页类型,该示例性方法的主要思想是:
从Dom树中依次取出p元素,所述p元素为用于引起新的一段的元素;判断以该元素为根元素的子树能否构成新闻正文的内容,如果可以,则判定该网页是新闻网页,并将该p元素记为正文元素;否则,继续尝试下一个p元素,直到判定以该元素为根元素的子树能够构成新闻正文的内容,或者尝试完所有的p元素。当尝试完所有的p元素仍然找不到正文元素时,判定该网页为普通网页。
所述正文元素定义为正文子树的根节点,以正文元素为根节点的子树就是新闻网页的正文;所述标题元素定义为作为新闻标题的元素。
基于上述主要思想,图2示出了本发明实施例中一较佳判断网页类型的方法流程示意图。参见图2,该较佳方法采用深度优先遍历算法对Dom树进行遍历,包括如下步骤:
步骤201:从Dom树的根元素开始,查找第一个p元素。
步骤202:判断是否找到p元素,如果找不到p元素,则转入步骤206;否则,继续执行步骤203。
步骤203:判断该p元素是否为正文元素,如果是,则继续执行步骤204,否则,转入步骤205。
步骤204:判定该网页为新闻网页,结束本流程。
步骤205:从当前p元素开始,继续遍历Dom树,查找下一个p元素,并转入步骤202。
步骤206:判定该网页为普通网页,结束本流程。
至此,结束本较佳判断网页类型的方法。
上述步骤203中可以通过判断以某个p元素为根元素的子树是否能够构成新闻正文的内容,来判断该p元素是否为正文元素。具体地,可以按照如下过程进行判断:
首先,初始化:遍历以某个p元素为根元素的子树,统计出该子树下所有文本元素包含的句号总数和逗号总数,分别记为x和y;统计出该子树中除p元素和br元素(用于插入一个换行符的元素)之外的其它元素的总数,记为n;并统计出a元素(标明超链接的起始或目的位置的元素)的总数,记为a;并设定一个门限值RATE_AWITHNEWSSIGN。
然后,按照如下主要思想判断该p元素是否为正文元素:根据新闻正文在形式上的特点,对x、y、n和a的值进行判断,当这些值偏离新闻正文的统计值时,就判定该p元素不是正文元素,否则当这些值满足所有的统计规律时,判定该p元素为正文元素。
下面具体给出一个判断某个p元素是否为正文元素的算法示例,该算法示例包括如下步骤:
第1步:判断该元素是否有onclick属性,如果有,则判定该元素不是正文元素,否则,进入第2步。
第2步:如果n>100,则判定该元素不是正文元素,否则进入第3步。
第3步:如果n>30且x或y为0,则判定该元素不是正文元素,否则进入第4步。
第4步:如果x和y都为0,则判定该元素不是正文元素,否则进入第5步。
第5步:如果x>=0且y>=0,并且a/(x+y)>RATE_AWITHNEWSSIGN,则判定该元素不是正文元素,否则进入第6步。
第6步:如果该元素的文本包含的字数少于80,则判定该元素不是文本元素,否则进入第7步。
第7步:判定该元素为正文元素。
至此,结束本算法示例。
上述步骤103是按照预先设置的新闻网页转换算法将Dom树中的HTML元素转换为相应的XHTML元素。如前所述,新闻网页中的标题和正文是用户的关注点,因此,较佳地,可以在进行转换之前,对所述Dom树进行重新构造,使得标题和正文能够处于被用户最先看到的位置,从而提高分页结果的科学性和合理性。下面通过一个示例说明如何设置新闻网页转换算法,实现Dom树中的HTML元素到相应XHTML元素的转换。图3为本发明实施例中一较佳新闻网页转换算法的流程示意图。参见图3,该方法包括:
步骤301:根据新闻网页的特性,设置正文判断条件和标题判断条件。
本步骤中,所述正文判断条件是用于判断某个元素是否为正文元素的条件,所述标题判断条件是用于判断某个元素是否为标题元素的条件。例如,上述判断网页类型的方法中,判断某元素是否为p元素、以该p元素为根元素的子树是否能够构成新闻正文的内容等,就属于正文判断条件。
步骤302:根据预先设置的正文判断条件确定Dom树中的正文元素、根据预先设置的标题判断条件确定Dom树中的标题元素,并确定形式标题。
本步骤所述确定正文元素和标题元素的过程如下:从所述Dom树的根节点出发,按照深度优先遍历算法查找所述Dom树,当找到满足所述正文判断条件的节点时,将所述节点确定为新闻网页的正文元素;在正文元素的父节点与根节点之间,存在一条路径,在这条路径以及路径左边的节点之间寻找符合标题判断条件的元素作为标题元素。
所述正文元素可以按照上述判断网页类型的方法中所公开的方法进行确定,具体而言,就是:依次查找Dom树中的p元素,并判断以该p元素为根元素的子树是否能够构成新闻正文的内容,如果查找到这样的p元素,就将该p元素作为正文元素。在实际应用中,可以根据实际情况设置其他正文判断条件来判断某元素是否是正文元素。
找到正文元素,就找到了新闻的正文,因为以正文元素为根元素的子树构成了新闻正文的内容。找到正文元素后,可以继续查找新闻网页的标题。作为新闻标题的元素,简称为标题元素,标题元素必须满足一些基本性质,例如:必须是文本元素,文本字数不能太长也不能太短、不能是一个链接,文本中不能出现句号等。满足这些基本性质的元素就是候选的标题元素,在满足这些基本性质的前提下,根据新闻标题在形式上的特点给该元素打分,得分最高的元素就判定为标题元素。下面给出一个较佳的打分规则:
如果字数在5到25之间,加10分,否则不加分;
没有句号和逗号加10,有逗号、无句号加5,否则不加分;
离正文元素的距离最近加30分,然后依次下降为20、10和0分;
若形式标题的文本包含了该元素的文本,加30分;否则不加分。
所述形式标题为:Dom树中Head元素的子元素Title下的文本元素。
在正文元素的父元素和根元素之间,存在一条路径。在这条路径以及路径左边的节点之间寻找符合基本性质的候选标题元素,并从所有的候选标题元素中选择得分最高的元素作为最终的标题元素。
步骤303:重新构造Dom树。
本步骤中,重新构造Dom树的操作可以包括如下步骤:保留以正文元素为根节点的子树、以标题元素的父元素为根节点的子树以及形式标题,将所述Dom树中除所述两棵子树和形式标题之外的其余元素全部删除,然后新建一个html元素(表明文档包含html元素的元素)、head元素(提供了关于文档的无序信息集合的元素)和body元素(指定文档主体的开始和结束的元素),将形式标题作为head元素的子元素,标题元素和正文元素分别作为body元素的第一个和第二个子元素,head元素和body元素作为html元素的第一个和第二个子元素,html元素作为根元素。如此,得到一棵新的Dom树。对于新闻页面来说,原先的Dom树不再有用,接下来的所有操作都针对该新的Dom树。
步骤304:将新Dom树中的HTML元素转换为相应的XHTML元素。
较佳地,本步骤所述将新Dom树中的HTML元素转换为相应的XHTML元素可以包括:对于所述新Dom树中的HTML元素,如果所述HTML元素存在对应的XHTML元素,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
至此,完成本较佳新闻网页转换算法的流程。
上述步骤104是按照预先设置的新闻网页分页算法对转换后的Dom树进行分页,得到至少一个页面。新闻页面的特点是文字占据了页面的大部分空间,因此在文字过长时,需要将这些文字分成多个页面来显示。在设置新闻网页分页算法时,可以遵循如下原则:尽量保证从属于同一父节点的各子节点处于同一页面内,这也就保证了网页中同一块内元素之间的关联性。下面给出一个设置新闻网页分页算法的示例。该示例性新闻网页分页算法的主要思想是:
根据无线设备屏幕的规格设定新闻页面行数的标准值、新闻页面行数的最大值和新闻页面一行的标准字数;
遍历Dom树,根据文本元素中文字的字数和所述设定的新闻页面一行的标准字数计算文字占据的行数;
在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
基于上述主要思想,下面给出一个采用深度优先遍历算法实现所述新闻网页分页算法的流程:
首先,初始化:设定新闻页面行数的标准值NEWS_STANDARD_LINE,新闻页面行数的最大值NEWS_MAX_LINE以及新闻页面一行的标准字数NEWS_TEXT_NUM_PER_LINE,同时设定行数计数器的当前值为1,设定根元素的第一个子元素为当前元素,此时父元素为根节点。初始化之后,执行如下第1步。
第1步:判断当前元素是否为文本元素,如果不是则直接转入第4步;否则先将当前的行数计数器的值存入到临时计数器中,然后将当前元素的文本字数除以NEWS_TEXT_NUM_PER_LINE向上取整后得到的整数累加到行数计数器中,再判断行数计数器的累计值是否达到了预先设定的NEWS_STANDARD_LINE:
如果行数计数器的累计值没有达到NEWS_STANDARD_LINE,则直接转入第4步;
如果行数计数器的累计值达到NEWS_STANDARD_LINE,则进一步判断行数计数器的累计值是否达到NEWS_MAX_LINE;
如果行数计数器的值没有达到NEWS_MAX_LINE,则转入第3步,否则转入第2步。
第2步:在当前文本元素中寻找一个句号,使句号之前的文本字数除以NEWS_TEXT_NUM_PER_LINE向上取整后得到的整数,加上临时计数器中的值刚好达到NEWS_STANDARD_LINE。如果找到这样的句号就将当前文本元素分裂成两个文本元素,找到的句号和句号之前的文本属于第一个文本元素,句号之后的文本属于第二个文本元素;然后给第一个文本元素打上分页标签,同时将行数计数器的值重新设置为1,然后转入第4步;如果没有找到这样的句号,则转入第3步。
第3步:如果当前文本元素不是父元素的最后一个子元素,则给当前文本元素打上分页标签,同时将行数计数器的值重新设置为1;
否则,判断父元素是否是该父元素的父元素的最后一个子元素:
如果父元素不是该父元素的父元素的最后一个子元素,则给该父元素打上分页标签,同时将行数计数器的值重新设置为1;
如果父元素是该父元素的父元素的最后一个子元素,则判断该父元素的父元素是否为根元素:
如果是根元素,则给根元素打上分页标签,然后遍历结束;
否则,判断该父元素的父元素是否为该父元素的父元素的父元素的最后一个元素:
如果不是,则给该父元素的父元素打上分页标签,同时将行数计数器的值重新设置为1;
如果是,则继续向上检查,直到找到一个元素,该元素不是它的父元素的最后一个元素,或者该元素就是根元素,此时给该元素打上分页标签,并将行数计数器的值重新设置为1。如果此时打上分页标签的元素是根元素则遍历结束,否则转入第4步。
第4步:如果当前元素的父元素是br(插入一个换行符的元素)、dd(在定义列表中表明定义的元素)、dl(引起定义列表的元素)、hr(绘制水平线的元素)、li(引起列表中的一个项目的元素)、td(指定表格中的单元格的元素)、address(指示特定信息,如地址、签名、作者、此文档的原创者的元素)、caption(指定表格的简要描述的元素)、div(指定渲染HTML的容器的元素)、fieldset(在字段集包含的文本和其它元素外面绘制一个方框的元素)、table(指定所含内容要组织成行列的表格的元素)、dt(在定义列表中表明定义术语的元素)、form(指定所包含控件在表单中起作用的元素)、ol(绘制文本的编号列表的元素)、p(用来引起一段的元素)或者ul(绘制文本的项目符号列表的元素);并且,当前元素是父节点的第一个子节点,转入第7步;否则转入第5步。
第5步:如果当前元素的父元素是td元素,且该td元素不是tr元素的首个子元素时,直接转入第7步,否则转入第6步。
第6步:如果当前元素为br、dd、dl、hr、li、tr、address、caption、div、fieldset、table、dt、form、ol、p或者ul,则将行数计数器的当前值加1,然后转入第7步;否则直接转入第7步。
第7步:如果当前元素含有子元素,则将该当前元素设为父元素,该当前元素的第一个子元素设为新的当前元素,然后转入第1步;否则转入第8步。
第8步:如果当前元素不是该当前元素的父元素的最后一个子节点,则将当前元素右边的元素设为新的当前元素,然后转入第1步;否则,若父元素是根元素,遍历结束,若父元素不是根元素,则转入第9步。
第9步:将父元素设为新的当前元素,父元素的父元素设为新的父元素,然后转入第8步。
直至遍历结束,此时,根据元素上的分页标签,以及元素在Dom树中的位置,将得到至少一个页面,所述至少一个页面就是对新闻网页的分页结果。
上述步骤105是按照预先设置的普通网页转换算法将Dom树中的HTML元素转换为相应的XHTML元素。本步骤中,可以按照如下方式实现所述转换:
对于所述Dom树中的HTML元素,如果所述HTML元素存在对应的XHTML元素,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
上述步骤106是按照预先设置的普通网页分页算法对转换后的Dom树进行分页,得到至少一个页面。在设置普通网页分页算法时,可以遵循如下原则:尽量保证从属于同一父节点的各子节点处于同一页面内,这也就保证了网页中同一块内元素之间的关联性。下面给出一个设置普通网页分页算法的示例。该示例性普通网页分页算法的主要思想是:
浏览器在显示某些XHTML元素时,会自动换行,该算法在遍历Dom树时,统计这些会自动换行的元素的个数,从而确定该普通网页将占据多少行。通过给每个页面设定一个行数的标准值,并设定分页标签来保证每张新的页面在无线设备屏幕上占据的行数在这个设定的标准值附近,并在分出新的一页时,尽量保证从属于同一父节点的各子节点处于同一页面内。
基于上述主要思想,下面给出一个采用深度优先遍历算法实现所述普通网页分页算法的流程:
首先,初始化:设定普通页面行数的标准值STANDARD_LINE和普通页面允许的最大行数MAX_LINE,同时设定行数计数器的当前值为1,设定根元素的第一个子元素为当前元素,此时父元素为根节点。初始化之后,执行如下第1步。
第l步:如果父元素是br(插入一个换行符的元素)、dd(在定义列表中表明定义的元素)、dl(引起定义列表的元素)、hr(绘制水平线的元素)、li(引起列表中的一个项目的元素)、td(指定表格中的单元格的元素)、address(特定信息,如地址、签名、作者、此文档的原创者的元素)、caption(指定表格的简要描述的元素)、div(指定渲染HTML的容器的元素)、fieldset(在字段集包含的文本和其它元素外面绘制一个方框的元素)、table(指定所含内容要组织成行列的表格的元素)、dt(在定义列表中表明定义术语的元素)、form(指定所包含控件在表单中起作用的元素)、ol(绘制文本的编号列表的元素)、p(用来引起一段的元素)或者ul(绘制文本的项目符号列表的元素),并且,当前元素是父节点的第一个子节点,则转入第4步;否则转入第2步。
第2步:如果父元素是td元素,且该td元素不是tr元素的首个子元素,则直接转入第4步,否则转入第3步。
第3步:如果当前元素为br、dd、dl、hr、li、tr、address、caption、div、fieldset、table、dt、form、ol、p或者ul,则将行数计数器的当前值加1,然后转入第4步,否则,直接转入第4步。
第4步:如果当前元素含有子元素,则将该当前元素设为父元素,将该当前元素的第一个子元素设为新的当前元素,然后转入第1步;否则判断当前元素是否为父元素的最后一个子元素,如果是则转入第5步,否则转入第6步。
第5步:如果行数计数器的累计值没有达到STANDARD_LINE或者已达到STANDLINE_LINE但没有达到MAX_LINE,并且父元素不处于Dom树的前5层,则直接转入第6步;
若父元素处于Dom树的前5层,且行数计数器的累计值达到了STANDARD_LINE或者MAX_LINE时,判断父元素是否为该父元素的父元素的最后一个子元素:
如果父元素是该父元素的父元素的最后一个子元素,则给该父元素打上分页标签,同时将行数计数器的值重新设置为1,然后转入第6步;
如果父元素不是该父元素的父元素的最后一个子元素,则判断该父元素的父元素是否为根元素:
如果是根元素,则给该根元素打上分页标签,然后遍历结束;
否则,判断该父元素的父元素是否为该父元素的父元素的父元素的最后一个子元素,:
如果不是,则给该父元素的父元素打上分页标签,同时将行数计数器的值重新设置为1;
如果是,则按照同样的方法继续检查,直到找到一个元素,该元素不是它的父元素的最后一个元素,或者该元素就是根元素,此时给该元素打上分页标签,并将行数计数器的值重新设置为1。如果此时打上分页标签的元素是根元素则遍历结束,否则然后转入第6步;
第6步:如果当前元素不是该当前元素的父元素的最后一个子节点,则将当前元素右边的元素设为当前元素,然后转入第1步;否则,若父元素是根元素,遍历结束,若父元素不是根元素,则转入第7步。
第7步:将父元素设为新的当前元素,父元素的父元素设为新的父元素,然后转入第6步。
直至遍历结束,此时,根据元素上的分页标签,以及元素在Dom树中的位置,将得到至少一个页面,所述至少一个页面就是对普通网页的分页结果。
在按照图1所示方法对网页进行分页,得到至少一个页面之后,可以根据分页标签将分页后得到的至少一个页面的内容存放在一个队列中。为了进一步改善用户体验,还可以确定转换后的Dom树中最重要的信息块所处的页面,并将所述页面作为最佳页面,输出所述最佳页面的页码。所述最佳页面就是用于最先显示的页面。这里,最佳页面可以默认设置为第一个页面。下面通过一个示例说明如何确定最重要的信息块所处的页面:
对于新闻网页来说,最重要的信息块就是新闻正文,因此,新闻正文所处的页面应当作为最佳页面;
对于普通网页来说,可以根据一定的原则确定最重要的信息块所符合的特征,然后基于所述原则设置相应的算法来确定最重要的信息块所处的页面。
例如,本申请的发明人在长期的实践过程中发现,普通网页中最重要的信息块具有如下特点:出现的位置通常在网页的顶部和左侧;信息块中包含很多的链接,这些链接的文字都较长;这些文字较长的链接通常是连续出现的,因此,在遍历Dom时,可以遵循上述原则进行。下面给出一个确定普通网页中最重要信息块的算法示例。该示例性算法的主要思想是:
统计一些元素的子元素是否为文字较长的链接,而且这些链接是连续的;当第一次找到一个元素,该元素下存在N个子元素(N是根据统计规律设定的门槛值),这些子元素是连续、紧挨在一起的,而且这些元素都是文字较长的链接,就判定已经找到最重要的信息块。下面给出判断普通网页中最重要信息块的算法:
基于上述主要思想,下面给出一个采用深度优先遍历算法实现所述确定普通网页中最重要信息块的算法的流程:
首先,初始化:设定链接的文字长度的门限值LINK_WORD_THRESHOLD,设定链接个数的门限值LINK_COUNT_THRESHOLD,设定根元素的第一个子元素为当前元素,此时父元素为根节点,所有元素的链接计数器初始化为零。初始化之后,执行如下第1步。
第1步:如果当前元素为body(指定文档主体的开始和结束的元素),div(指定渲染HTML的容器的元素),fieldset(在字段集包含的文本和其它元素外面绘制一个方框的元素),html(表明文档包含HTML元素的元素),object(向HTML页面中插入对象的元素),p(引起一段的元素),span(指定内嵌文本容器的元素),table(指定所含内容要组织成行列的表格的元素),td(指定表格中的单元格的元素),tr(指定表格中的一行的元素)或者ul(绘制文本的项目符号列表的元素),则将当前元素的第一个子元素设为新的当前元素,将当前元素设为父元素,然后转入第3步;否则转入第2步。
第2步:若当前元素不是父元素的最后一个子元素,则将当前元素右边的元素设为新的当前元素,然后转入第1步;若当前元素是父元素的最后一个子元素,则转入第6步。
第3步:将当前元素的第一个子元素设为新的当前元素,将原来的当前元素设为新的父元素。如果父元素为div或者td,则将父元素的链接计数器设为0,然后转入第4步;如果父元素是ul,则将父元素的链接计数器设为0,然后转入第5步;如果父元素不是div者td或ul,则转入第1步。
第4步:若当前元素不是a元素,则将父元素的链接计数器的值设为0,然后转入第1步;若当前元素为a元素,则在判定链接的文字长度不少于LINK_WORD_THRESHOLD时,将父元素的链接计数器的值加1;如果当前元素不是父元素的最后一个节点则将当前元素的下一个元素设为当前元素,然后转入第4步,如果当前元素是父元素的最后一个子元素,则转入第6步。
第5步:如果当前元素不是li元素,则将父元素的链接计数器的值设为0,然后转入第1步;否则,当li下的子元素为a元素且链接的文字长度不少于LINK_WORD_THRESHOLD时,父元素的链接计数器的值加1。如果li不是父元素的最后一个节点则将当前元素的下一个元素设为当前元素,然后转入第5步,如果当前元素是父元素的最后一个子元素,则转入第6步。
第6步:如果父元素的链接计数器的累计值达到LINK_COUNT_THRESHOLD,则结束;如果父元素的链接计数器的累计值没有达到LINK_COUNT_THRESHOLD,若父元素为根元素,则结束,否则,将父元素设为当前元素,然后转入第2步。
直至确定普通页面中最重要的信息块所处的页面,将该页面的页面输出。
上述新闻网页分页算法和普通网页分页算法将在分页位置对应的元素中设置分页标签,根据分页标签可以输出分页得到的至少一个页面。本实施例提供的根据分页标签输出页面的算法的主要思想是:
在遍历Dom树并输出网页内容时,检查每一个遍历到的元素是否设有分页标签,如果没有分页标签,则继续遍历;如果设置了分页标签,则表明此时已经输出的网页内容就是最新分页的网页内容,将该元素从Dom树中删除,然后删除位于根元素到该元素之间的路径上的左边的节点,再从Dom树的根元素开始重新遍历。在遍历完Dom树且找不到设置有分页标签的元素,或者设置有分页标签的元素就是根元素本身时,算法结束。下面给出根据分页标签输出分页文档的具体算法示例:
首先,初始化:将记录最佳页面页码的变量初始化为0,分页后页码从零开始记起,每分出一页页码加1。最新分页的网页内容在存入队列之前,先存于文档字符串中。初始化之后,执行如下第1步。
第1步:将根元素的第一个子元素设为当前元素,根元素设为当前的父元素,文档字符串设为空。
第2步:将父元素对应的文本追加到文档字符串中,若父元素的链接计数器的值达到LINK_COUNT_THRESHOLD,则将记录最佳页面页码的变量的值设为当前页的页码。
第3步:若当前元素有子元素,则将当前元素的第一个子元素设为当前元素,将当前元素设为新的父元素,然后转入第2步;否则将当前元素对应的文本追加到文档字符串中,然后转入第4步。
第4步:如果当前元素没有打上分页标签,则转入第5步;否则转入第7步。
第5步:如果当前元素不是父元素的最后一个子元素,则将当前元素右边的元素设为当前元素,然后转入第3步;否则,若父元素不是根元素则转入第6步,若父元素是根元素则将文档字符串存放到队列中,然后结束分页文档的输出。
第6步:如果父元素没有打上分页标签,则将父元素设为当前元素,父元素的父元素设为新的父元素,然后转入第5步;若父元素打有分页标签,如果父元素是根元素则将文档字符串存放到队列中,然后结束分页文档的输出,否则将父元素设为当前元素,然后转入第7步。
第7步:先将文档字符串存放到队列中,然后从Dom树上删除当前元素左边的元素和当前元素本身,然后将父元素设为当前元素,再转入第8步。
第8步:若当前元素是根元素,则转入第1步;否则从Dom树上删除当前元素左边的元素,然后将父元素设为当前元素,再转入第8步。
至此,结束。
以上对本发明分页方法的具体实施方式进行了详细阐述,下面对本发明实施例提供的分页装置进行说明。
图4为本发明实施例中分页装置的组成结构示意图。参见图4,该分页装置包括:
解析模块410,用于将超文本标记语言HTML网页解析为Dom树;
页面类型判断模块420,用于分析Dom树,判断所述Dom树对应的HTML网页是新闻网页还是普通网页,如果是新闻网页,由新闻网页转换模块430处理,如果是普通网页,由普通网页转换模块450处理;
新闻网页转换模块430,用于按照新闻网页转换算法将所述Dom树中的HTML元素转换为相应的扩展的超文本标记语言XHTML元素,所述转换后的Dom树由新闻网页分页模块440处理;
新闻网页分页模块440,用于按照新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面;
普通网页转换模块450,用于按照普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素,所述转换后的Dom树由普通网页分页模块460处理;
普通网页分页模块460,用于按照普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面。
图4所示分页装置中可以进一步包括:
最佳页面确定模块470,用于确定所述转换后的Dom树中最重要的信息块所处的页面,将所述页面作为最佳页面。
图4所示页面类型判断模块420,还可以用于判断所述Dom树中是否存在正文元素,当存在正文元素时,判定所述HTML网页为新闻网页,当不存在正文元素时,判定所述HTML网页为普通网页。
较佳地,图4所示新闻网页转换模块430可以包括:
判断单元431,用于根据预先设置的正文判断条件确定所述Dom树中的正文元素、根据预先设置的标题判断条件确定所述Dom树中的标题元素,并用于确定所述Dom树中的形式标题;
新Dom树构造单元432,用于根据所述正文元素、标题元素和形式标题,构造一颗新Dom树
转换单元433,用于将新Dom树中的HTML元素转换为相应的XHTML元素。
图4所示判断单元431,还可以用于从所述Dom树的根节点出发,按照深度优先遍历算法查找所述Dom树,当找到满足所述正文判断条件的节点时,将所述节点确定为新闻网页的正文元素,在正文元素的父节点与根节点之间的路径上以及所述路径左边的节点之间寻找符合标题判断条件的元素作为标题元素;
所述新Dom树构造单元432,还可以用于保留以正文元素为根节点的子树、以标题元素的父元素为根节点的子树以及形式标题,将所述Dom树中除所述两棵子树和形式标题之外的其余元素全部删除;新建一个html元素、一个head元素和一个body元素,将形式标题作为head元素的子元素、标题元素和正文元素分别作为body元素的第一个子元素和第二个子元素、head元素和body元素作为html元素的第一个子元素和第二个子元素,html元素作为根元素,得到新Dom树;
所述转换单元433,还可以用于判断所述新Dom树中的HTML元素是否存在对应的XHTML元素,如果存在,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
图4所示新闻网页分页模块440,还可以用于设定新闻页面行数的标准值、新闻页面行数的最大值和新闻页面一行的标准字数;遍历Dom树,根据文本元素中文字的字数和所述设定的新闻页面一行的标准字数计算文字占据的行数;在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
图4所示普通网页转换模块450,还可以用于判断所述Dom树中的HTML元素是否存在对应的XHTML元素,如果存在,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
图4所示普通网页分页模块460,还可以用于设定普通页面行数的标准值、普通页面行数的最大值和普通页面一行的标准字数;遍历Dom树,统计自动换行的元素的个数,确定所述普通网页占据的行数;在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
较佳地,图4所示最佳页面确定模块470可以包括:
新闻最佳页面确定单元471,用于将新闻正文对应的块作为所述最重要的信息块,将标题元素所在的页面作为最佳页面;
普通最佳页面确定单元472,用于将Dom树中子元素链接的文字较长、且所述链接为连续的元素确定为最重要的信息块,将所述元素所在的页面作为最佳页面。
由上述技术方案可见,本发明实施例提出的分页方法和分页装置,通过对网页类型进行区分,并在进行分页的过程中,针对不同类型网页的不同特性设置相应的网页转换算法和网页分页算法,如此,通过对不同类型的网页采用不同的网页转换算法进行HTML元素到XHTML元素的转换、并采用不同的网页分页算法对所述转换的结果进行分页,使得本发明实施例所得到的分页结果更科学、合理,从而能够达到改善用户体验的目的。
并且,本发明实施例在设置网页分页算法时,通过在分页时将从属于同一个父节点的各子结点置于同一页面内,保证了具有关联的元素尽量被分在同一个页面中,从而保证了XHTML元素之间的关联性,这也增强了本发明分页结果的科学性和合理性。
此外,本发明实施例在对XHTML网页执行分页操作,得到至少一个页面之后,通过判断该XHTML网页中最重要的信息块所处的页面,并将该页面作为最佳页面进行显示,使得用户能够最先看到网页中最重要的内容,而网页中最重要的内容通常也是用户最关注的内容,因此,能够有效地改善用户体验。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种分页方法,其特征在于,包括:
将超文本标记语言HTML网页解析为Dom树;
对Dom树进行分析,判断所述HTML网页是新闻网页还是普通网页;
如果是新闻网页,则按照预先设置的新闻网页转换算法将所述Dom树中的HTML元素转换为相应的扩展的超文本标记语言XHTML元素,并按照预先设置的新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面;
如果是普通网页,则按照预先设置的普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素,并按照预先设置的普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面。
2.根据权利要求1所述的方法,其特征在于,在对所述转换后的Dom树进行分页,得到至少一个页面之后,进一步包括:
确定所述转换后的Dom树中最重要的信息块所处的页面,将所述页面作为最佳页面,所述最佳页面用于最先显示。
3.根据权利要求1或2所述的方法,其特征在于,所述对Dom树进行分析,判断所述HTML网页是新闻网页还是普通网页包括:
判断所述Dom树中是否存在正文元素,当存在正文元素时,判定所述HTML网页为新闻网页,当不存在正文元素时,判定所述HTML网页为普通网页。
4.根据权利要求1或2所述的方法,其特征在于,所述按照预先设置的新闻网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素包括:
根据预先设置的正文判断条件确定所述Dom树中的正文元素、根据预先设置的标题判断条件确定所述Dom树中的标题元素,并确定所述Dom树中的形式标题;
根据所述正文元素、标题元素和形式标题,构造一颗新Dom树;
将新Dom树中的HTML元素转换为相应的XHTML元素。
5.根据权利要求4所述的方法,其特征在于,所述根据预先设置的正文判断条件和标题判断条件确定所述Dom树中的正文元素和标题元素包括:从所述Dom树的根节点出发,按照深度优先遍历算法查找所述Dom树,当找到满足所述正文判断条件的节点时,将所述节点确定为新闻网页的正文元素,在正文元素的父节点与根节点之间的路径上以及所述路径左边的节点之间寻找符合标题判断条件的元素作为标题元素;
所述根据正文元素、标题元素和形式标题,构造一颗新Dom树包括:保留以正文元素为根节点的子树、以标题元素的父元素为根节点的子树以及形式标题,将所述Dom树中除所述两棵子树和形式标题之外的其余元素全部删除;新建一个html元素、一个head元素和一个body元素,将形式标题作为head元素的子元素、标题元素和正文元素分别作为body元素的第一个子元素和第二个子元素、head元素和body元素作为html元素的第一个子元素和第二个子元素,html元素作为根元素,得到新Dom树;
所述将新Dom树中的HTML元素转换为相应的XHTML元素包括:对于所述新Dom树中的HTML元素,如果所述HTML元素存在对应的XHTML元素,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
6.根据权利要求1或2所述的方法,其特征在于,所述按照预先设置的新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面包括:
设定新闻页面行数的标准值、新闻页面行数的最大值和新闻页面一行的标准字数;
遍历Dom树,根据文本元素中文字的字数和所述设定的新闻页面一行的标准字数计算文字占据的行数;
在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
7.根据权利要求1或2所述的方法,其特征在于,所述按照预先设置的普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素包括:
对于所述新Dom树中的HTML元素,如果所述HTML元素存在对应的XHTML元素,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
8.根据权利要求1或2所述的方法,其特征在于,所述按照预先设置的普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面包括:
设定普通页面行数的标准值、普通页面行数的最大值和普通页面一行的标准字数;
遍历Dom树,统计自动换行的元素的个数,确定所述普通网页占据的行数;
在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
9.根据权利要求2所述的方法,其特征在于,所述确定所述转换后的Dom树中最重要的信息块所处的页面包括:
对于新闻网页,将新闻正文对应的块作为所述最重要的信息块,将标题元素所在的页面作为最佳页面;
对于普通网页,将Dom树中子元素链接的文字较长、且所述链接为连续的元素确定为最重要的信息块,将所述元素所在的页面作为最佳页面。
10.一种分页装置,其特征在于,包括:
解析模块,用于将超文本标记语言HTML网页解析为Dom树;
页面类型判断模块,用于分析Dom树,判断所述Dom树对应的HTML网页是新闻网页还是普通网页,如果是新闻网页,由新闻网页转换模块处理,如果是普通网页,由普通网页转换模块处理;
新闻网页转换模块,用于按照新闻网页转换算法将所述Dom树中的HTML元素转换为相应的扩展的超文本标记语言XHTML元素,所述转换后的Dom树由新闻网页分页模块处理;
新闻网页分页模块,用于按照新闻网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面;
普通网页转换模块,用于按照普通网页转换算法将所述Dom树中的HTML元素转换为相应的XHTML元素,所述转换后的Dom树由普通网页分页模块处理;
普通网页分页模块,用于按照普通网页分页算法对所述转换后的Dom树进行分页,得到至少一个页面。
11.根据权利要求10所述的装置,其特征在于,该装置中进一步包括:
最佳页面确定模块,用于确定所述转换后的Dom树中最重要的信息块所处的页面,将所述页面作为最佳页面。
12.根据权利要求10或11所述的装置,其特征在于:
所述页面类型判断模块,还用于判断所述Dom树中是否存在正文元素,当存在正文元素时,判定所述HTML网页为新闻网页,当不存在正文元素时,判定所述HTML网页为普通网页。
13.根据权利要求10或11所述的装置,其特征在于,所述新闻网页转换模块包括:
判断单元,用于根据预先设置的正文判断条件确定所述Dom树中的正文元素、根据预先设置的标题判断条件确定所述Dom树中的标题元素,并用于确定所述Dom树中的形式标题;
新Dom树构造单元,用于根据所述正文元素、标题元素和形式标题,构造一颗新Dom树
转换单元,用于将新Dom树中的HTML元素转换为相应的XHTML元素。
14.根据权利要求13所述的装置,其特征在于:
所述判断单元,还用于从所述Dom树的根节点出发,按照深度优先遍历算法查找所述Dom树,当找到满足所述正文判断条件的节点时,将所述节点确定为新闻网页的正文元素,在正文元素的父节点与根节点之间的路径上以及所述路径左边的节点之间寻找符合标题判断条件的元素作为标题元素;
所述新Dom树构造单元,还用于保留以正文元素为根节点的子树、以标题元素的父元素为根节点的子树以及形式标题,将所述Dom树中除所述两棵子树和形式标题之外的其余元素全部删除;新建一个html元素、一个head元素和一个body元素,将形式标题作为head元素的子元素、标题元素和正文元素分别作为body元素的第一个子元素和第二个子元素、head元素和body元素作为html元素的第一个子元素和第二个子元素,html元素作为根元素,得到新Dom树;
所述转换单元,还用于判断所述新Dom树中的HTML元素是否存在对应的XHTML元素,如果存在,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
15.根据权利要求10或11所述的装置,其特征在于:
所述新闻网页分页模块,还用于设定新闻页面行数的标准值、新闻页面行数的最大值和新闻页面一行的标准字数;遍历Dom树,根据文本元素中文字的字数和所述设定的新闻页面一行的标准字数计算文字占据的行数;在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
16.根据权利要求10或11所述的装置,其特征在于,所述普通网页转换模块,还用于判断所述Dom树中的HTML元素是否存在对应的XHTML元素,如果存在,则直接将所述HTML元素转换为对应的XHTML元素;否则,将所述HTML元素的所有子节点作为所述HTML元素的父节点的子节点,删除所述HTML元素。
17.根据权利要求10或11所述的装置,其特征在于:
所述普通网页分页模块,还用于设定普通页面行数的标准值、普通页面行数的最大值和普通页面一行的标准字数;遍历Dom树,统计自动换行的元素的个数,确定所述普通网页占据的行数;在所述占据的行数超出所述设定的新闻页面行数的标准值或新闻页面行数的最大值时,分出一个新的页面,并将从属于同一个父节点的各子节点置于同一页面内。
18.根据权利要求11所述的装置,其特征在于,所述最佳页面确定模块包括:
新闻最佳页面确定单元,用于将新闻正文对应的块作为所述最重要的信息块,将标题元素所在的页面作为最佳页面;
普通最佳页面确定单元,用于将Dom树中子元素链接的文字较长、且所述链接为连续的元素确定为最重要的信息块,将所述元素所在的页面作为最佳页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710301649A CN100592296C (zh) | 2007-12-27 | 2007-12-27 | 一种分页方法及分页装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710301649A CN100592296C (zh) | 2007-12-27 | 2007-12-27 | 一种分页方法及分页装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101196918A true CN101196918A (zh) | 2008-06-11 |
CN100592296C CN100592296C (zh) | 2010-02-24 |
Family
ID=39547331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710301649A Active CN100592296C (zh) | 2007-12-27 | 2007-12-27 | 一种分页方法及分页装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100592296C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853293A (zh) * | 2010-05-26 | 2010-10-06 | 卓望数码技术(深圳)有限公司 | 一种自适应分页的方法及装置 |
CN102298614A (zh) * | 2011-07-29 | 2011-12-28 | 百度在线网络技术(北京)有限公司 | 一种确定网页收藏信息的收藏分类的方法、装置和设备 |
CN102314486A (zh) * | 2011-08-04 | 2012-01-11 | 百度在线网络技术(北京)有限公司 | 一种用于页面浏览的方法与设备 |
WO2012079378A1 (zh) * | 2010-12-13 | 2012-06-21 | 腾讯科技(深圳)有限公司 | 浏览网页的方法、装置、服务器和移动终端 |
CN102637172A (zh) * | 2011-02-10 | 2012-08-15 | 北京百度网讯科技有限公司 | 网页分块标注方法与系统 |
CN102722562A (zh) * | 2012-06-01 | 2012-10-10 | 浙江灵玖天下软件有限公司 | 基于互联网的组织机构信息整合与更新方法 |
CN103064845A (zh) * | 2011-10-20 | 2013-04-24 | 北京中搜网络技术股份有限公司 | 网页信息处理装置和网页信息处理方法 |
CN103778238A (zh) * | 2014-01-27 | 2014-05-07 | 西安交通大学 | 一种从维基百科半结构化数据自动构建分类树的方法 |
CN104598440A (zh) * | 2013-10-31 | 2015-05-06 | 株式会社东芝 | 文本处理装置以及文本处理方法 |
CN108460069A (zh) * | 2017-11-22 | 2018-08-28 | 钱慧敏 | 为web网页文章独立添加位置评论的方法 |
CN110019532A (zh) * | 2018-02-07 | 2019-07-16 | 中国平安人寿保险股份有限公司 | 一种规则编辑方法、终端设备及存储介质 |
CN110837614A (zh) * | 2019-11-05 | 2020-02-25 | 上海嘉道信息技术有限公司 | 一种高效地生成网页信息抽取规则的方法及系统 |
-
2007
- 2007-12-27 CN CN200710301649A patent/CN100592296C/zh active Active
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853293A (zh) * | 2010-05-26 | 2010-10-06 | 卓望数码技术(深圳)有限公司 | 一种自适应分页的方法及装置 |
CN101853293B (zh) * | 2010-05-26 | 2012-07-25 | 卓望数码技术(深圳)有限公司 | 一种自适应分页的方法及装置 |
WO2012079378A1 (zh) * | 2010-12-13 | 2012-06-21 | 腾讯科技(深圳)有限公司 | 浏览网页的方法、装置、服务器和移动终端 |
CN102637172B (zh) * | 2011-02-10 | 2013-11-27 | 北京百度网讯科技有限公司 | 网页分块标注方法与系统 |
CN102637172A (zh) * | 2011-02-10 | 2012-08-15 | 北京百度网讯科技有限公司 | 网页分块标注方法与系统 |
CN102298614A (zh) * | 2011-07-29 | 2011-12-28 | 百度在线网络技术(北京)有限公司 | 一种确定网页收藏信息的收藏分类的方法、装置和设备 |
CN102314486A (zh) * | 2011-08-04 | 2012-01-11 | 百度在线网络技术(北京)有限公司 | 一种用于页面浏览的方法与设备 |
CN103064845A (zh) * | 2011-10-20 | 2013-04-24 | 北京中搜网络技术股份有限公司 | 网页信息处理装置和网页信息处理方法 |
CN103064845B (zh) * | 2011-10-20 | 2016-05-18 | 北京中搜网络技术股份有限公司 | 网页信息处理装置和网页信息处理方法 |
CN102722562A (zh) * | 2012-06-01 | 2012-10-10 | 浙江灵玖天下软件有限公司 | 基于互联网的组织机构信息整合与更新方法 |
CN104598440A (zh) * | 2013-10-31 | 2015-05-06 | 株式会社东芝 | 文本处理装置以及文本处理方法 |
CN104598440B (zh) * | 2013-10-31 | 2018-12-04 | 株式会社东芝 | 文本处理装置以及文本处理方法 |
CN103778238A (zh) * | 2014-01-27 | 2014-05-07 | 西安交通大学 | 一种从维基百科半结构化数据自动构建分类树的方法 |
CN108460069A (zh) * | 2017-11-22 | 2018-08-28 | 钱慧敏 | 为web网页文章独立添加位置评论的方法 |
CN110019532A (zh) * | 2018-02-07 | 2019-07-16 | 中国平安人寿保险股份有限公司 | 一种规则编辑方法、终端设备及存储介质 |
CN110019532B (zh) * | 2018-02-07 | 2022-03-25 | 中国平安人寿保险股份有限公司 | 一种规则编辑方法、终端设备及存储介质 |
CN110837614A (zh) * | 2019-11-05 | 2020-02-25 | 上海嘉道信息技术有限公司 | 一种高效地生成网页信息抽取规则的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100592296C (zh) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100592296C (zh) | 一种分页方法及分页装置 | |
CN101246494B (zh) | 一种互联网网页转换方法、系统及设备 | |
Michlmayr et al. | Learning user profiles from tagging data and leveraging them for personal (ized) information access | |
CN102663023B (zh) | 一种提取网页内容的实现方法 | |
CN101727461B (zh) | 一种网页的正文抽取方法 | |
US7055094B2 (en) | Virtual tags and the process of virtual tagging utilizing user feedback in transformation rules | |
US8538989B1 (en) | Assigning weights to parts of a document | |
CN102163213B (zh) | 一种语音浏览方法及浏览器 | |
CN103166981B (zh) | 一种无线网页转码方法及装置 | |
CN104484431B (zh) | 一种基于领域本体的多源个性化新闻网页推荐方法 | |
US11803582B2 (en) | Methods and apparatuses for content preparation and/or selection | |
US20020133483A1 (en) | Systems and methods for computer based searching for relevant texts | |
CN110020189A (zh) | 一种基于中文相似性计算的文章推荐方法 | |
CN102184189A (zh) | 基于dom节点文本密度的网页核心块确定方法 | |
CN101197849A (zh) | 将互联网页面转换为无线应用协议页面的转换方法和装置 | |
CN110597981A (zh) | 一种采用多策略自动生成摘要的网络新闻概要系统 | |
CN102831199A (zh) | 建立兴趣模型的方法及装置 | |
CN102065114A (zh) | 一种移动终端访问网页的方法及装置 | |
US20080163077A1 (en) | System and method for visually generating an xquery document | |
CN103246732A (zh) | 一种在线Web新闻内容的抽取方法及系统 | |
Ahmadi et al. | User-centric adaptation of Web information for small screens | |
CN110377796A (zh) | 基于dom树的正文抽取方法、装置、设备及存储介质 | |
CN102915361A (zh) | 一种基于文字分布特征的网页正文提取方法 | |
CN110334300A (zh) | 面向舆情分析的文本辅助阅读方法 | |
CN101833571B (zh) | 一种从互联网上自动提取双语翻译词典的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151230 Address after: The South Road in Guangdong province Shenzhen city Fiyta building 518057 floor 5-10 Nanshan District high tech Zone Patentee after: Shenzhen Tencent Computer System Co., Ltd. Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |