CN112149008A - 一种文档版本集合的计算方法 - Google Patents
一种文档版本集合的计算方法 Download PDFInfo
- Publication number
- CN112149008A CN112149008A CN202010986308.3A CN202010986308A CN112149008A CN 112149008 A CN112149008 A CN 112149008A CN 202010986308 A CN202010986308 A CN 202010986308A CN 112149008 A CN112149008 A CN 112149008A
- Authority
- CN
- China
- Prior art keywords
- content
- value
- key
- document
- file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文档版本集合的计算方法,属于计算机和大数据应用交叉领域;本发明包括如下步骤:指定URL下载快照,以时间戳为文件名Fn,快照内容为文件内容Content存储;清除html标签和时光机的特殊标签,并将修改后的内容保存;计算Content的MD5值,并修改Content为MD5值、制表符和Fn;上传所有文档到Hadoop集群的HDFS文件***;Map阶段,将Content拆分,使得key为MD5值,value为Fn,并发送key‑value;Reduce阶段,累加相同key的计数,将value的值Fn连接到container;对于同一个key,组织输出内容为key、count和container。
Description
技术领域
一种文档版本集合的计算方法,是基于互联网时光机(wayback machine)抓取数据的文档版本管理方法,属于计算机和大数据应用交叉领域。
背景技术
公布在互联网的某URL(Uniform Resource Locator,统一资源定位符)是说明文档,通常是该产品的最新版本;一般地,用户可以从时光机查看到某URL所存储的所有说明书文档,以时间点进行存储,即时光机爬虫抓取的时间。
如果在过去十年内,该产品更新了许多版本,只要用户使用的不是该产品的最新版本,则无法在公布的说明文档URL上得到使用文档,通过时光机也无法准确得到某个版本的产品文档。
MD5信息摘要算法(MD5 Message-Digest Algorithm)是一种密码散列函数,可以产生出一个128位的散列值,用于确保信息传输完整一致;将一个文件的所有二进制内容进行MD5计算,就得到文件的MD5值,其特点是,即使只有一个字节被修改,修改前后文件的MD5值也会发生变化;许多语言库函数支持MD5计算,比如PHP语言调用函数MD5(文件名)可以计算得到文件的MD5值。
Hadoop是一个由Apache基金会开发的可运行于大规模计算机集群上的分布式并行编程开源框架,原来是全文检索引擎Lucene的子项目,设计之初是为了处理Lucene抓取的海量索引,包括存储和计算,后来独立成为一个分布式基础构架;它主要包括文件***HDFS和计算模型MapReduce等模块,MapReduce可以让开发者不用关心分布式计算框架的实现细节,而主要编写自己的处理逻辑;MapReduce程序的核心步骤分两部分:Map和Reduce,Map收到一个计算作业时,首先把计算作业拆分成若干个Map任务,分配到不同的节点上去执行,每一个Map任务处理输入数据的一部分,一般以“键-值对”(key-value)方式存储Map任务处理结果,当Map任务完成后会生成一些中间文件,这些中间文件作为Reduce任务的输入数据,Reduce对数据的“键-值对”做进一步组合处理后输出最终结果;HDFS是分布式文件存储与管理***,一般建立在操作***的本地文件***基础之上,供集群网络的节点使用,在HDFS上,大文件会被分隔成多个数据块分布存储,其高效访问模式是一次写入、多次读取。
HTML(Hyper Text Markup Language)称为超文本标记语言,是一种标识性的语言,它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体;HTML通常由浏览器读取,按照其标签的要求向用户展示内容,标签由小于号开始,大于号结束,由浏览器负责解释,一般并不会展示在用户内容上。
本发明主要清洗HTML标签,以及所有“<script”和“</script>”之间的脚本代码,因为此间代码一般不用于阅读,只用于逻辑判定,若代码带时间戳则会影响MD5值的计算,所以删除,这样得到接近浏览器展示的文档内容,然后计算文档内容的MD5值,最后计算相同MD5值的元素,组成文档的版本集合。
发明内容
本发明的目的在于:提供一种文档版本集合的计算方法,通过文挡集合对比,简化了查新、查重的工作。
本发明采用的技术方案如下:一种文档版本集合的计算方法,包括如下步骤:
1.根据指定的产品文档URL,从时光机网站下载对应时间段的所有快照,每个快照都以时光机上抓取时记录的时间戳作为文件名变量Fn,时间戳以年月日时分秒表示,而文件内容设为变量Content,此步为时光机上存储的内容;
2.后继步骤会大幅度修改Content,如需单独保存可在此步进行;
3.清除以“<script”开始和以“</script>”结尾的标签间的代码;清除以小于号和大于号闭合的HTML标签,比如<html>、<body>、<script>等,但是不检查标签闭合性,也不处理异常情况,比如部分或者破损的标签,修改后的内容保存为文件内容Content;
4.清除时光机的两个特殊引导的标签“Wayback Rewrite JS Include”和“wayback's'DOMContentLoaded line”,删除这两行的所有内容,修改后的内容保存为文件内容Content;
5.计算Content的MD5值,将MD5值和Fn以制表符相隔,并以回车符结束,作为一行内容保存为文件内容Content;
6.将处理完的所有文档,上传到Hadoop集群的HDFS文件***;
7.Map阶段,一个文档作为一个Map任务处理,以制表符为令牌,将Content拆分,使得key为MD5值,value为Fn,这对key-value被作为一个Map任务的处理结果;
8.Reduce阶段,key相同的Map任务会被同一个Reduce收集,对于同一个key,每收集一个value,则计数器count加1,value的值Fn被累加到字符串container,并以空格分隔;
其中,key就是集合的元素,所有key的Fn数量的和,等于本次任务上传的所有文档数量;
9.对于同一个key,组织输出内容为key、count和container,它们之间也用空格分隔,container末尾以回车符结束;
10.从HDFS上取回此次任务的输出结果。
本发明的工作原理为:本发明要解决的第一个问题,即总共有多少个不同版本的文档,列出该版本的文档出现过的所有时间,如果所有文档的MD5值在一个数学集合里,一个元素代表一个MD5值,也就是一个版本,则本发明计算出该集合有多少个元素,一个版本的文档可以有多个时光机抓取的时间戳。
另一个问题是,时光机每次抓取的页面都会修改文档内容,在特定位置加入注释,用于记录时间戳以及当时处理的服务器节点等信息,这样即使在浏览器里以HTML解释的效果相同,但实际上每次存储的文件内容都不相同,可以对HTML标签和时光机的时间戳等注释进行清洗,尽量得到原始的文件内容,清洗后的实际文件内容应基本与浏览器页面上以HTML解释的展示内容相符。
还有一个问题是,如果得到的文档数据是海量的,则本发明使用了Hadoop的HDFS存储数据,然后由基于MapReduce框架的程序来处理文档版本集合。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明用于页面修改时间边界的一个确定,用于论文查重,专利查新等业务;当需要得到某个版本产品的文档,首先需要计算出该产品的文档总共出现过多少个不同的版本,然后根据某个版本的发布时间,寻找该时间附近的产品文档,通过版本集合统计。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为本发明运行流程图;
图2为本发明实施例1的Nutch文档版本持续时间的甘特图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种文档版本集合的计算方法,包括如下步骤:
S1、指定产品文档URL,下载对应时间段的所有快照,以时间戳为文件名变量Fn,快照内容为文件内容Content存储;
S2.判断Content是否需大幅度修改,若无修改需单独保存即保存文档内容,否则进行下一步;
S3.清除html标签和时光机的特殊标签,并将修改后的内容保存为文件内容Content;
S4.计算Content的MD5值,将MD5值和Fn以制表符相隔,并以回车符结束,作为一行内容保存为文件内容Content;
S5.将上述步骤处理完的所有文档,上传到Hadoop集群的HDFS文件***;
S6.Map阶段,一个文档作为一个Map任务处理,以制表符为令牌,将Content拆分,使得key为MD5值,value为Fn,并发送key-value;
S7.Reduce阶段,key相同的Map任务会被同一个Reduce收集,对于同一个key,每收集一个value,则计数器count加1,value的值Fn被累加到字符串container,并以空格分隔;
其中,key是集合的元素,所有key的Fn数量的和,等于本次任务上传的所有文档数量;
S8.对于同一个key,组织输出内容为key、count和container,它们之间也用空格分隔,container末尾以回车符结束;
S9.从HDFS上取回此次任务的输出结果。
实施例1
以Apache Nutch的官方文档为例,分析Nutch的官方说明文档有多少个版本,Apache Nutch的官方文档URL是https://wiki.apache.org/nutch/NutchTutorial,该URL仅包含Nutch软件的最新操作说明;用户是无法从该URL得到其中某一版的说明的,第1步从时光机上查询该URL,可得到记录的所有文档,但是其中包含重复的记录,开始时间选择时光机对该URL的第一条记录是2006年05月29日21:09:49,结束时间选择2012年02月16日,总共可下载到172份文档,并且以时间命名,即年月日时分秒,然后执行第3-5步进行清洗和计算MD5值,解决第二个问题;为了解决第三个海量数据的问题,执行第6-10步上传到Hadoop,并在Map Reduce框架下计算,最后得到重复最多的文档是19篇,有两类,共38篇,向用户显示的部分结果如表1所示:
把结果数据绘成甘特图,可以清楚看到文档版本随时间线的变化;为方便展示,仅选择绘制2006-2008年数据,如图2所示,图的左侧为表格,每行为一个版本,第一列为版本MD5值,第二列Points为爬虫采集的次数,Days为该版本的开始和结束日期之间经过的天数,为计算方便,规定若Days为0,则设置Days为1;找到某个版本日期集合里的开始和结束日期,即日期的最大最小值,在右侧绘制成甘特图,对于MD5值为37d0b4942f074bf1a7289a16ba24d1b6的19篇文档,在2006年5月到11月之间,官方都没有修改过,是同一个版本的文档;下一次修改发生在2006年11月21日,对应此时间段内发布的产品,或者商品价格,或者其他需求的信息,由于文档修改是连续行为,则本发明轻松找到了文档修改的时间范围的边界,很容易找到该软件版本对应的文档,成功解决了提出的问题。
实施例2
以苹果官方中文网站的iPhone页面为例,URL为https://www.apple.com/cn/iPhone;使用本发明的步骤,计算得到部分结果如下表所示。
对于版本为0370eba2c84c144a2eba7c5766bf8030的文档,共采集了3个点,时间段为2020-07-23到2020-08-06,该文档的下一个版本开始时间为2020-08-22,通过对比两份版本的文档,发现修改内容为增加了“field trip课外活动”,仅此一处修改。
以上所述,仅为本发明的较佳实施例,并不用以限制本发明,本发明的专利保护范围以权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (5)
1.一种文档版本集合的计算方法,其特征在于,包括如下步骤:
S1、指定产品文档URL,下载对应时间段的所有快照,以时间戳为文件名变量Fn,快照内容为文件内容Content存储;
S2.判断Content是否需大幅度修改,若无修改需单独保存即保存文档内容,否则进行下一步;
S3.清除html标签和时光机的特殊标签,并将修改后的内容保存为文件内容Content;
S4.计算Content的MD5值,将MD5值和Fn以制表符相隔,并以回车符结束,作为一行内容保存为文件内容Content;
S5.将上述步骤处理完的所有文档,上传到Hadoop集群的HDFS文件***;
S6.Map阶段,一个文档作为一个Map任务处理,以制表符为令牌,将Content拆分,使得key为MD5值,value为Fn,并发送key-value;
S7.Reduce阶段,key相同的Map任务会被同一个Reduce收集,对于同一个key,每收集一个value,则计数器count加1,value的值Fn被累加到字符串container,并以空格分隔;其中,key是集合的元素,所有key的Fn数量的和,等于本次任务上传的所有文档数量;
S8.对于同一个key,组织输出内容为key、count和container,它们之间也用空格分隔,container末尾以回车符结束;
S9.从HDFS上取回此次任务的输出结果。
2.根据权利要求1所述的一种文档版本集合的计算方法,其特征在于,步骤S3所述清除html标签是清除以小于号和大于号闭合的HTML标签,以及所有“<script”和“</script>”之间的脚本代码。
3.根据权利要求1所述的一种文档版本集合的计算方法,其特征在于,步骤S3所述时光机的特殊标签是两个特殊引导的标签“Wayback Rewrite JS Include”和“wayback's'DOMContentLoaded line”,删除这两行的所有内容,修改后的内容保存为文件内容Content。
4.根据权利要求1所述的一种文档版本集合的计算方法,其特征在于,步骤9所述输出结果采用表格的形式输出文档版本的MD5值、拥有该值的所有文档数量count及时间戳。
5.根据权利要求4所述的一种文档版本集合的计算方法,其特征在于,所述时间戳以年月日时分秒表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010986308.3A CN112149008B (zh) | 2020-09-18 | 2020-09-18 | 一种文档版本集合的计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010986308.3A CN112149008B (zh) | 2020-09-18 | 2020-09-18 | 一种文档版本集合的计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112149008A true CN112149008A (zh) | 2020-12-29 |
CN112149008B CN112149008B (zh) | 2022-09-23 |
Family
ID=73893234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010986308.3A Active CN112149008B (zh) | 2020-09-18 | 2020-09-18 | 一种文档版本集合的计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112149008B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882974A (zh) * | 2012-10-15 | 2013-01-16 | 焦点科技股份有限公司 | 一种通过网站识别版本号节省网站访问资源的方法 |
US20130290234A1 (en) * | 2012-02-02 | 2013-10-31 | Visa International Service Association | Intelligent Consumer Service Terminal Apparatuses, Methods and Systems |
US20150288647A1 (en) * | 2011-05-12 | 2015-10-08 | Telefonica, S.A. | Method for dns resolution of content requests in a cdn service |
CN108132929A (zh) * | 2017-12-25 | 2018-06-08 | 上海大学 | 一种海量非结构化文本的相似性计算方法 |
CN111586072A (zh) * | 2020-05-19 | 2020-08-25 | 贺斌 | 一种数据传输方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-18 CN CN202010986308.3A patent/CN112149008B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150288647A1 (en) * | 2011-05-12 | 2015-10-08 | Telefonica, S.A. | Method for dns resolution of content requests in a cdn service |
US20130290234A1 (en) * | 2012-02-02 | 2013-10-31 | Visa International Service Association | Intelligent Consumer Service Terminal Apparatuses, Methods and Systems |
CN102882974A (zh) * | 2012-10-15 | 2013-01-16 | 焦点科技股份有限公司 | 一种通过网站识别版本号节省网站访问资源的方法 |
CN108132929A (zh) * | 2017-12-25 | 2018-06-08 | 上海大学 | 一种海量非结构化文本的相似性计算方法 |
CN111586072A (zh) * | 2020-05-19 | 2020-08-25 | 贺斌 | 一种数据传输方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
E.GALÁN 等: "A Strong Authentication Protocol Based on Portable One-Time Dynamic URLs", 《 2010 IEEE/WIC/ACM INTERNATIONAL CONFERENCE ON WEB INTELLIGENCE AND INTELLIGENT AGENT TECHNOLOGY》 * |
徐健等: "基于Nutch的Web网站定向采集***", 《现代图书情报技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112149008B (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10692048B2 (en) | Apparatus and method for generating a chronological timesheet | |
JP7170638B2 (ja) | 系統メタデータの生成、アクセス、及び表示 | |
US11366871B2 (en) | System and method for collection of a website in a past state and retroactive analysis thereof | |
Johns | Information management for health professions | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN111666490A (zh) | 基于kafka的信息推送方法、装置、设备及存储介质 | |
CN103001796A (zh) | 服务端处理网络日志数据的方法及装置 | |
CN110851681B (zh) | 爬虫处理方法、装置、服务器及计算机可读存储介质 | |
KR102391839B1 (ko) | 사용자 페르소나를 처리하는 방법, 장치, 서버 및 저장 매체 | |
US9009850B2 (en) | Database management by analyzing usage of database fields | |
CN110990365A (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN113468196B (zh) | 用于处理数据的方法、装置、***、服务器和介质 | |
CN112149008B (zh) | 一种文档版本集合的计算方法 | |
Bakaev et al. | Web intelligence linked open data for website design reuse | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
US11593451B2 (en) | System and method for comparing zones for different versions of a website based on performance metrics | |
WO2017156624A1 (en) | Method and system for persisting data | |
CN113326401A (zh) | 字段血缘生成方法及*** | |
CN112711404A (zh) | 一次生成专题网页模板、自动发布专题网页的方法 | |
CN112402955B (zh) | 游戏日志记录方法及*** | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
Novelinka | Automatic creation of charts from open datasets | |
CN109508318B (zh) | 一种存储量统计方法、装置、电子设备和可读存储介质 | |
Khatiwada | Architectural issues in real-time business intelligence | |
Middelfart | The Inverted Data Warehouse Based on TARGIT Xbone: How the Biggest of Data Can Be Mined by “The Little Guy” |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |