论文部分内容阅读
摘 要:该文将书目信息抓取的思想融合到农家书屋数字化的阅读平台中,设计了书目信息抓取软件的模型,节约了网站建设的开发成本。根据不同书目的阅读点击率,提供了按照书目热度排名的大众化推荐,改善了农民读者的阅读感受,为将来的个性化服务提供一定的数据基础。
关键词:书目信息 农家书屋 阅读推荐
1引言
随着农家书屋数字服务平台的书目资源更新,图书数量急剧增长,农民读者对书目信息的要求越来越高。数字农家书屋网站建设的经费和人力有限,如何在条件受限的情况下,降低建站成本,提升开发效率,保证图书资源的动态更新,又能合理的为农民读者作出阅读推荐,其中的书目信息抓取技术就成为了农家书屋数字化建设中的关键共性技术。当前互联网的专业图书网站都有着丰富的书目信息,如亚马逊和当当网,除了提供书目的书名、作者、出版社外,还附有封面、内容简介、目录、价格、ISBN等详细的书目信息。这些书目信息对于农民读者借阅和网站开发者来说,都有着重要的参考价值。国内有部分OPAC系统通过豆瓣网的开放接口,远程调用该类接口后,可将在豆瓣网的书目信息显示在本系统中。但是这类远程调用存在明显的缺陷,需要在网络可用的情况下进行远程调用,调用需申请开通,访问速率和频率受限,信息抓取渠道单一,只是简单的信息扩展,仅限于信息的调用,缺乏对这些书目信息的再加工,整合利用。数字农家书屋针对这类问题设计了基于书目信息抓取的阅读推荐,通过调用当当网和豆瓣网的书目信息,并保存到农家书屋数字化平台的本地数据库中,支持在线和离线的浏览方式阅读数字图书,并根据各类别图书的点击率提供了阅读热度排行榜,同时缓解了书目信息的信息过载,成为了农民读者的阅读向导,提升了用户的体验满意度。
2系统设计
2.1系統结构设计
书目信息抓取软件采取分层和模块化的设计方式,层次化分为数据层和业务逻辑层。其中,数据层包括参数管理器和数据存取器两个模块;业务逻辑层包括网页抓取器和抓取管理器两个模块。各个模块的功能实现如下:
1)参数管理器,完成对参数文件中的系统参数进行读写操作,包括数据库连接参数、抓取线程、超时设置、网页抓取器等设置。
2)数据存取器,对数据库中抓取到书目信息进行读写操作,并对数据库连接池进行管理。
3)网页抓取器,对网页进行抓取、解析、提取书目信息。因不同网站的URL和结构不同,为了对不同网站进行书目信息的抓取,需设计一个公共的网页抓取器接口,再对不同网站设计各自的类,根据参数文件来定义不同的网站类,调用各自的类进行书目信息的抓取。
4)抓取管理器,生成和分配书目的抓取ID序列,并进行多线程管理。调用网页抓取器来抓取网页的书目信息,保存数据库。可以通过参数文件对抓取的网站范围、书目ID范围、线程数等进行设置管理。
2.2系统数据设计
书目信息抓取软件主要包括书目、作者、图片和附注四张表。书目用来保存网站来源、题名、出版社等信息;作者主要保存作者信息;图片保存封面、插图等图片类文件;附注保存内容简介、目录、摘要等信息。
3系统的功能实现和测试
3.1网页抓取器的实现
1)网页URL的获取,从专业图书网站动态抓取书目信息,这类网站一般都提供有分类浏览的功能,但其只能显示有限的书目信息条数,常规方法难以获取完整的URL。其实网页的URL有着固定格式,存有详细书目信息的网页也是如此,是由书目的ID生成。这类ID值为一连串的整数值,因此,抓取网页中的URL可以从最小的图书ID算起,代替URL中的ID值,取得抓取的初始ID值,再循环递增加一,确定最大图书ID,在算出的ID范围内进行抓取。
2)书目信息在解析网页中的位置确定。想要提取出书目信息,就要确定这类信息在网页中的位置。位置特征值主要从四个方面确定:书目信息在网页中的固定位移和长度;书目信息的前后是否有固定内容;HTML元素的属性值;书目信息是否有固定的表达值。
3)先设计一个公共接口,该接口再定义两个方法,分别实现抓取器类和生成书目对象。当当网和豆瓣网通过各自的抓取器类来实现。主要采用Neko HTML开发包设计抓取程序。该开发包就是一个简单的HTML扫描器和标签补偿器,将HTML文档解析为XML格式的DOM树,再使用XML接口从DOM树中提取相应的数据。
3.2抓取管理器的实现
1)读取设置参数,包括线程数、超时设置、书目ID范围、抓取器类。
2)计算书目抓取ID范围,生成起至的书目ID值。
3)根据抓取器类命名网页抓取对象。
4)初始化线程队列,按照书目ID序列依次抓取,将成功抓取的信息保存到数据库中,对于超时的抓取则放弃,重新获取该书目网页的URL再次抓取,最终完成全部的书目信息抓取。
5)任务结束则释放资源。也可在多台PC上运行该软件。设置不同抓取网站,抓取书目类别和ID范围,进行多线程抓取,节约抓取时间,提高效率,也不会造成抓取冲突。
3.3无用图片识别
在抓取书目信息是,如果没有相应的图书封面,大多以一张风格一样的图片说明替代,但这类图片大量保存在本地,浪费抓取时间和磁盘空间,识别这类图片,避免下载和保存是很必要的。可以通过文件名进行判断,或者通过MD5码判断。
3.4系统运行测试
书目信息抓取软件通过一般商务PC运行测试后,发现多线程的运行方式可以显著提高整体的抓取速度,但线程设置过高时,抓取效率则下降。且抓取速度受网络质量影响较大,高峰期的抓取速率明显低于空闲期。
3.5阅读热度排名
书目信息抓取软件将相应的数据保存到本地数据库后,读者通过对不同图书的点击阅读会形成热度不同的书目列表。将这些书目列表按照各个类别和总的阅读排行榜展现给农民读者,从而形成书目阅读的流行度排名,这类排名属于热度排名,相对于个性化推荐而言,这类推荐则属于大众化推荐,为读者提供了一个阅读向导的作用。从数字农家书屋的分阶段性建设来看,这类大众化推荐的存在是必要的,但随着移动互联网的发展,未来在农家书屋数字化平台上推出个性化的阅读推荐系统是一个趋势。
关键词:书目信息 农家书屋 阅读推荐
1引言
随着农家书屋数字服务平台的书目资源更新,图书数量急剧增长,农民读者对书目信息的要求越来越高。数字农家书屋网站建设的经费和人力有限,如何在条件受限的情况下,降低建站成本,提升开发效率,保证图书资源的动态更新,又能合理的为农民读者作出阅读推荐,其中的书目信息抓取技术就成为了农家书屋数字化建设中的关键共性技术。当前互联网的专业图书网站都有着丰富的书目信息,如亚马逊和当当网,除了提供书目的书名、作者、出版社外,还附有封面、内容简介、目录、价格、ISBN等详细的书目信息。这些书目信息对于农民读者借阅和网站开发者来说,都有着重要的参考价值。国内有部分OPAC系统通过豆瓣网的开放接口,远程调用该类接口后,可将在豆瓣网的书目信息显示在本系统中。但是这类远程调用存在明显的缺陷,需要在网络可用的情况下进行远程调用,调用需申请开通,访问速率和频率受限,信息抓取渠道单一,只是简单的信息扩展,仅限于信息的调用,缺乏对这些书目信息的再加工,整合利用。数字农家书屋针对这类问题设计了基于书目信息抓取的阅读推荐,通过调用当当网和豆瓣网的书目信息,并保存到农家书屋数字化平台的本地数据库中,支持在线和离线的浏览方式阅读数字图书,并根据各类别图书的点击率提供了阅读热度排行榜,同时缓解了书目信息的信息过载,成为了农民读者的阅读向导,提升了用户的体验满意度。
2系统设计
2.1系統结构设计
书目信息抓取软件采取分层和模块化的设计方式,层次化分为数据层和业务逻辑层。其中,数据层包括参数管理器和数据存取器两个模块;业务逻辑层包括网页抓取器和抓取管理器两个模块。各个模块的功能实现如下:
1)参数管理器,完成对参数文件中的系统参数进行读写操作,包括数据库连接参数、抓取线程、超时设置、网页抓取器等设置。
2)数据存取器,对数据库中抓取到书目信息进行读写操作,并对数据库连接池进行管理。
3)网页抓取器,对网页进行抓取、解析、提取书目信息。因不同网站的URL和结构不同,为了对不同网站进行书目信息的抓取,需设计一个公共的网页抓取器接口,再对不同网站设计各自的类,根据参数文件来定义不同的网站类,调用各自的类进行书目信息的抓取。
4)抓取管理器,生成和分配书目的抓取ID序列,并进行多线程管理。调用网页抓取器来抓取网页的书目信息,保存数据库。可以通过参数文件对抓取的网站范围、书目ID范围、线程数等进行设置管理。
2.2系统数据设计
书目信息抓取软件主要包括书目、作者、图片和附注四张表。书目用来保存网站来源、题名、出版社等信息;作者主要保存作者信息;图片保存封面、插图等图片类文件;附注保存内容简介、目录、摘要等信息。
3系统的功能实现和测试
3.1网页抓取器的实现
1)网页URL的获取,从专业图书网站动态抓取书目信息,这类网站一般都提供有分类浏览的功能,但其只能显示有限的书目信息条数,常规方法难以获取完整的URL。其实网页的URL有着固定格式,存有详细书目信息的网页也是如此,是由书目的ID生成。这类ID值为一连串的整数值,因此,抓取网页中的URL可以从最小的图书ID算起,代替URL中的ID值,取得抓取的初始ID值,再循环递增加一,确定最大图书ID,在算出的ID范围内进行抓取。
2)书目信息在解析网页中的位置确定。想要提取出书目信息,就要确定这类信息在网页中的位置。位置特征值主要从四个方面确定:书目信息在网页中的固定位移和长度;书目信息的前后是否有固定内容;HTML元素的属性值;书目信息是否有固定的表达值。
3)先设计一个公共接口,该接口再定义两个方法,分别实现抓取器类和生成书目对象。当当网和豆瓣网通过各自的抓取器类来实现。主要采用Neko HTML开发包设计抓取程序。该开发包就是一个简单的HTML扫描器和标签补偿器,将HTML文档解析为XML格式的DOM树,再使用XML接口从DOM树中提取相应的数据。
3.2抓取管理器的实现
1)读取设置参数,包括线程数、超时设置、书目ID范围、抓取器类。
2)计算书目抓取ID范围,生成起至的书目ID值。
3)根据抓取器类命名网页抓取对象。
4)初始化线程队列,按照书目ID序列依次抓取,将成功抓取的信息保存到数据库中,对于超时的抓取则放弃,重新获取该书目网页的URL再次抓取,最终完成全部的书目信息抓取。
5)任务结束则释放资源。也可在多台PC上运行该软件。设置不同抓取网站,抓取书目类别和ID范围,进行多线程抓取,节约抓取时间,提高效率,也不会造成抓取冲突。
3.3无用图片识别
在抓取书目信息是,如果没有相应的图书封面,大多以一张风格一样的图片说明替代,但这类图片大量保存在本地,浪费抓取时间和磁盘空间,识别这类图片,避免下载和保存是很必要的。可以通过文件名进行判断,或者通过MD5码判断。
3.4系统运行测试
书目信息抓取软件通过一般商务PC运行测试后,发现多线程的运行方式可以显著提高整体的抓取速度,但线程设置过高时,抓取效率则下降。且抓取速度受网络质量影响较大,高峰期的抓取速率明显低于空闲期。
3.5阅读热度排名
书目信息抓取软件将相应的数据保存到本地数据库后,读者通过对不同图书的点击阅读会形成热度不同的书目列表。将这些书目列表按照各个类别和总的阅读排行榜展现给农民读者,从而形成书目阅读的流行度排名,这类排名属于热度排名,相对于个性化推荐而言,这类推荐则属于大众化推荐,为读者提供了一个阅读向导的作用。从数字农家书屋的分阶段性建设来看,这类大众化推荐的存在是必要的,但随着移动互联网的发展,未来在农家书屋数字化平台上推出个性化的阅读推荐系统是一个趋势。