电子书数据处理方法与装置的制作方法

文档序号:6367217阅读:161来源:国知局
专利名称:电子书数据处理方法与装置的制作方法
技术领域
本申请涉及网络技术领域,特别是涉及ー种电子书数据的处理方法与装置。
背景技术
电子书是利用计算机技术将文字、图片、声音、影像等信息内容数字化的出版物。随着互联网技术应用的越来越广泛,传统的纸质阅读方式已逐渐被电子书取代,人们越来越趋向于利用网络和计算机技术下载电子书进行阅读。目前,在用户使用网络和计算机阅读电子书时,ー种方式是,直接使用浏览器从网 络中下载小说文本,然后使用JavaScript语言进行渲染,通过JavaScript做出精美的界面效果,实现阅读效果;另ー种方式是,直接使用浏览器从网络中下载小说文本,通过Flash技术做出精美的动画效果,从而实现阅读效果。然而,上述ニ种直接使用浏览器下载小说的方式,因浏览器本身的性能问题,无法启动多线程下载小说,使得下载速度缓慢,影响了用户阅读电子书的体验。

发明内容
本申请所要解决的技术问题是提供ー种电子书数据处理方法与装置,以解决现有浏览器下载电子书数据速度缓慢,影响用户阅读体验的问题。为了解决上述问题,本申请公开了ー种电子书数据处理方法,包括确定浏览器访问电子书网站;向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站,其中,所述注入程序用于获取和处理所述电子书网站中的电子书数据。优选地,所述向所述浏览器发起浏览器辅助对象BHO请求的步骤包括每当所述浏览器开启ー个所述电子书网站的网页,则向所述浏览器发起至少ー个所述BHO请求。优选地,所述向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站的步骤包括向所述浏览器发起所述BHO请求,请求所述浏览器将其浏览器Browser对象交给所述注入程序,供所述注入程序访问所述电子书网站。优选地,所述请求所述浏览器将其浏览器Browser对象交给所述注入程序,供所述注入程序访问所述电子书网站的步骤包括请求所述浏览器将其Browser对象交给所述注入程序,通过所述注入程序向所述浏览器注入自定义对象;使用所述自定义对象访问所述电子书网站中的网页,获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显示。优选地,所述使用所述自定义对象访问所述电子书网站中的网页的步骤包括所述自定义对象通过所述注入程序中的WebBrowser访问所述电子书网站中的网页。优选地,所述获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显示的步骤包括根据电子书页面解析规则获取所述网页中的电子书正文的数据,其中,所述电子书页面解析规则用于获取电子书各部分数据和/或属性;通过所述自定义对象对所述电子书正文的数据进行前端渲染后,交给所述浏览器进行显示优选地,所述电子书页面解析规则包括电子书内容提取规则,用于提取所述电子书网站的当前网页所属的电子书的正文数据、章节内容节数据、首页、书名、和目录地址。优选地,所述电子书页面解析规则还包括以下至少之ー电子书网站确定规则,用于根据用户输入的网址,确定该网址对应的网站是否为电子书网站;电子书标识获取规则,用于获取所述电子书网站的当前网页所属的电子书标识和章节标识。优选地,在所述根据电子书页面解析规则获取网页中的电子书正文的数据的步骤 之后,还包括将所述电子书正文的数据设置为不可复制数据。优选地,所述注入程序使用C++语言编写,所述自定义对象使用JavaScript语言编写。优选地,向所述浏览器发起所述BHO请求,请求所述浏览器将其浏览器Browser对象交给所述注入程序的步骤包括向所述浏览器发起所述BHO请求,通过所述BHO请求的SetSite接ロ请求所述浏览器将其Browser对象交给所述注入程序。优选地,在向所述浏览器发起浏览器辅助对象BHO请求的步骤之前,还包括调用所述注入程序中的资源页,以加载显示所述电子书数据的界面。优选地,在向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站的步骤之后,还包括每隔设定时间使用所述注入程序中的WebBrowser访问所述电子书网站中的网页,获取所述网页的更新信息。优选地,获取所述网页的更新信息的步骤包括根据所述网页的文档对象模型DOM结构,获取所述网页的更新信息。优选地,所述注入程序包括阅读器对象,用于下载所述电子书网站中的电子书的正文、解析所述电子书内容,以及保存所述电子书的最新章节。优选地,所述阅读器对象包括导航类,用于访问电子书页面;保存类,用于保存用户在所述电子书网站最后一次阅读的电子书的信息;解析类,用于从ー个电子书网页中解析出包括标题、正文、和上下页信息在内的信息。优选地,所述注入程序还包括以下至少之ー网址获取对象,用于获取当前电子书网页的网址;配置対象,用于获取当前用户的对当前电子书网页的配置信息;统计对象,用于对当前用户的历史浏览行为信息进行统计分析。优选地,所述浏览器使用IE内核和/或CHROME内核。为了解决上述问题,本申请还公开了ー种电子书数据处理装置,包括确定模块,用于确定浏览器访问电子书网站;注入访问模块,用于向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站,其中,所述注入程序用于获取和处理所述电子书网站中的电子书数据。优选地,所述注入访问模块,用于每当所述浏览器开启ー个所述电子书网站的网页,则向所述浏览器发起至少ー个所述BHO请求,请求使用设定的注入程序访问所述电子书网站。优选地,所述注入访问模块,用于向所述浏览器发起所述BHO请求,请求所述浏览器将其浏览器Browser对象交给所述注入程序,供所述注入程序访问所述电子书网站。优选地,所述注入访问模块,用于向所述浏览器发起所述BHO请求,请求所述浏览器将其Browser对象交给所述注入程序,通过所述注入程序向所述浏览器注入自定义对象;使用所述自定义对象访问所述电子书网站中的网页,获取和处理所述网页中的电子书数据,并将处理后的所述电子书数 据发送给所述浏览器进行显示。优选地,所述注入访问模块在使用所述自定义对象访问所述电子书网站中的网页时,所述自定义对象通过所述注入程序中的WebBrowser访问所述电子书网站中的网页。优选地,所述注入访问模块在获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显示时,根据电子书页面解析规则获取所述网页中的电子书正文的数据,其中,所述电子书页面解析规则用于获取电子书各部分数据和/或属性;通过所述自定义对象对所述电子书正文的数据进行前端渲染后,交给所述浏览器进行显示。优选地,所述电子书页面解析规则包括电子书内容提取规则,用于提取所述电子书网站的当前网页所属的电子书的正文数据、章节内容节数据、首页、书名、和目录地址。优选地,所述电子书页面解析规则还包括以下至少之ー电子书网站确定规则,用于根据用户输入的网址,确定该网址对应的网站是否为电子书网站;电子书标识获取规则,用于获取所述电子书网站的当前网页所属的电子书标识和章节标识。优选地,所述注入访问模块还用于在根据电子书页面解析规则获取所述网页中的电子书正文的数据后,将所述电子书正文的数据设置为不可复制数据。优选地,所述注入程序使用C++语言编写,所述自定义对象使用JavaScript语言编写。优选地,所述注入访问模块,用于向所述浏览器发起所述BHO请求,通过所述BHO请求的SetSite接ロ请求所述浏览器将其Browser对象交给所述注入程序。优选地,电子书数据处理装置还包括界面加载模块,用于在所述注入访问模块向所述浏览器发起浏览器辅助对象BHO请求之前,调用所述注入程序中的资源页,以加载显示所述电子书数据的界面。优选地,电子书数据处理装置还包括更新模块,用于在所述注入访问模块向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站之后,姆_设定时间使用所述注入程序中的WebBrowser访问所述电子书网站中的网页,获取所述网页的更新信息。优选地,所述更新模块,用于姆_设定时间使用所述注入程序中的WebBrowser访问所述电子书网站中的网页,根据所述网页的文档对象模型DOM结构,获取所述网页的更
新信息。优选地,所述注入程序包括阅读器对象,用于下载所述电子书网站中的电子书的正文、解析所述电子书内容,以及保存所述电子书的最新章节。优选地,所述阅读器对象包括导航类,用于访问电子书页面;保存类,用于保存用户在所述电子书网站最后一次阅读的电子书的信息;解析类,用于从ー个电子书网页中解析出包括标题、正文、和上下页信息在内的信息。优选地,所述注入程序还包括以下至少之ー网址获取对象,用于获取当前电子书网页的网址;配置対象,用于获取当前用户的对当前电子书网页的配置信息;统计对象,用于对当前用户的历史浏览行为信息进行统计分析。
优选地,所述浏览器使用IE内核和/或CHROME内核。与现有技术相比,本申请具有以下优点本申请在用户访问电子书网站时,通过向浏览器发送BHO请求注入程序,进而使用注入的程序访问电子书网站。注入的程序通常用处理效率更高的程序语言(如C++语言)编写,这样,一方 面,提高了浏览器下载电子书数据的速度,提升了用户的阅读体验;另一方面,可以根据用户需求设计注入程序,如屏蔽掉网页广告等,从而进一步提升用户的阅读体验;再一方面,还可以通过注入程序删除或关闭电子书的导出功能,从而使得电子书不能够被随意拷贝,以实现电子书的知识产权保护。


图I是根据本申请实施例一的ー种电子书数据处理方法的步骤流程图;图2是根据本申请实施例ニ的ー种电子书数据处理方法的步骤流程图;图3是根据本申请实施例三的ー种电子书数据处理方法的步骤流程图;图4是根据本申请实施例四的ー种电子书数据处理装置的结构框图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。实施例一參照图1,示出了根据本申请实施例一的ー种电子书数据处理方法的步骤流程图。本实施例的电子书数据处理方法包括以下步骤步骤S102 :确定用户使用浏览器访问电子书网站。在判断用户是否访问的是电子书网站时,可以根据网站的网址,或者网页的内容来进行判断。若用户访问的网站的网址,或者用户访问的网页的内容被判断为符合电子书网站的标准或规则,则可确定用户访问的网站是电子书网站。当然,不限于此,在实际应用中,本领域技术人员可以根据实际情況,适当设置判断规则,本申请对此不作限制。步骤S104 :向浏览器发起BHO请求,请求使用设定的注入程序访问电子书网站。其中,注入程序用于获取和处理电子书网站中的电子书数据。BHO (Browser Helper Ob ject,浏览器辅助对象),是微软推出的作为浏览器对第三方程序员开放交互接ロ的业界标准,通过简单的代码就可以进入浏览器领域的“交互接ロ”(INTERACTIVED Interface)。通过这个接ロ,程序员可以编写代码获取浏览器的行为。比如,通过BHO注入技木,使浏览器在访问的时候将WebBiOwser的接ロ注入到C++程序中,通过WebBiOwser注入的接ロ C++程序可以控制浏览器页面的行为等。本实施例中,正是使用了上述BHO的特性,编写注入程序,在用户访问电子书网站吋,向浏览器发送BHO请求,通过该请求使用设定的注入程序访问电子书网站。注入的程序通常用处理效率更高的程序语言(如C++语言)编写,这样,一方面,提高了浏览器下载电子书数据的速度,提升了用户的阅读体验;另ー方面,可以根据用户需求设计注入程序,如屏蔽掉网页广告等,从而进ー步提升用户的阅读体验;再一方面,还可以通过注入程序删除或关闭电子书的导出功能,从而使得电子书不能够被随意拷贝,以实现电子书的知识产权保护。实施例ニ參照图2,示出了根据本申请实施例ニ的ー种电子书数据处理方法的步骤流程图。本实施例的电子书数据处理方法包括以下步骤步骤S202 :用户使用浏览器打开电子书网站的ー个网页。步骤S204 向浏览器发起BHO请求。 本实施例中,用户每开启ー个电子书网站的网页,如每开启ー个小说网页,就会加载ー个BHO请求,本质上就新开启了ー个线程,用户可以同时开启多个网页实现多线程的访问,从而提升程序性能,更快地呈现电子书网页内容,给用户带来更强的视觉体验,同时又保持了程序的稳定。但不限于此,也可以用户打开ー个电子书网站加载ー个BHO请求,进而通过该BHO请求进行相应的单网页或多网页的电子书数据的获取和处理。优选地,每当浏览器开启ー个电子书网站的网页,则向浏览器发起至少ー个BHO请求,以实现单网页的多线程访问。步骤S206 :浏览器接收BHO请求,将其Browser对象交给注入程序,供注入程序访问电子书网站。优选地,注入程序使用C++语目编写。C++语目是一种闻处理效率的语目,使用C++语言编写注入程序,可以有效提高网页下载的速度和效率。浏览器的Browser对象具有浏览器的全部功能,得到Browser对象后能收到该浏览器的一切事件,能在该Browser对象中注入自定义对象,如C++对象或JavaScript对象(使用JavaScript语言编写的自定义对象)等,并能调用接ロ让Browser访问URL (统ー资源定位符)等。其中,可以通过在Browser对象中注入自定义对象访问电子书网站中的网页,获取和处理该网页中的电子书数据,并将处理后的电子书数据发送给浏览器进行显示。通过本实施例,用户每开启ー个电子书网站的网页,就会加载ー个BHO请求,用户可以同时开启多个网页实现多线程的访问,从而提升程序性能,更快地呈现电子书网页内容,给用户带来更强的视觉体验,同时又保持了程序的稳定。通过BHO请求将浏览器的Browser对象交给注入程序,由注入程序实现电子书网站的访问,实现了浏览器快速下载电子书数据,提升了用户阅读体验。实施例三參照图3,示出了根据本申请实施例三的ー种电子书数据处理方法的步骤流程图。本实施例中,通过COM技木、BHO技术和C++语言,将电子书数据处理的方法封装为ー个动态链接库DLL文件(即注入程序),供浏览器加载和访问,实现电子书数据处理。其中,COM (Component Object Model,组件对象模型)技术是一种说明如何建立可动态互变组件的规范,使得程序开发人员可以专注于自己的模块,而把和其他模块的交換处理交给COM来统ー处理,此规范提供了为保证能够互操作,客户和组件应遵循的ー些ニ进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。通过该规范COM实现了不同语言之间的ニ进制代码的共享。BHO注入技术可以使浏览器在访问的时候将WebBiOwser (程序内置的浏览器)的接ロ注入到其它程序,如C++程序中,通过WebBrowser注入的接ロ C++程序可以控制浏览器页面的行为。而Windows C++ (Windows程序下使用的C++语言程序)提供了对DOM (DocumentObject Model,文档对象模型)结构解析的接ロ技术,通过IHTMLElement接ロ(一种访问WEB页面内容的接ロ),可以让C++程序灵活的访问并获得到Html页面的ー些元素。以电子书网站为小说网站为例,本实施例的电子书数据处理方法包括以下步骤步骤S302 :判断用户是否浏览小说网站,如果是,则提醒用户是否进入阅读模式。优选地,可以设定判断规则,如根据用户输入的网址或网页内容,判断该网址或网页内容是否符合设定的判断规则,进而确定用户是否在浏览小说网站等。本实施例中,阅读模式提供了一个增强用户阅读体验的界面,可以包括JavaScript做的华丽界面(如,包含4套模式,分为日间和夜间模式),该界面简洁大方,实现自动翻页等。并且,一旦用户进入该模式,则触发进入后续流程。阅读模式为用户提供了ー个友好、美观的界面,但本领域技术人员应当明了,在实际应用中,也可省略该模式,如采用当用户打开小说网页时,直接向浏览器发起BHO请求等。步骤S304 :用户进入阅读模式,加载阅读模式的皮肤,进行界面展示。一旦用户进入阅读模式,调用本地的JavaScript资源页,并传入用户需要阅读的小说页面的URL。此后,由JavaScript资源页加载阅读模式的皮肤,负责界面展示。本地的JavaScript资源页是封装在DLL文件中的ー个URL资源,本实施例中,通过该JavaScript 资源页加载阅读模式的皮肤,负责界面展示。步骤S306 :向浏览器发起BHO请求,请求浏览器将其Browser对象交给用C++语言编写的注入程序,通过注入程序向浏览器注入使用JavaScript语言编写的自定义对象。在调用本地的JavaScript资源页之后,向浏览器发起BHO请求,浏览器通过调用BHO的SetSite接ロ注入自定义的JavaScript对象_360SafeExplorer (即,使用JavaScript语言编写的自定义对象)。之后,浏览器的JavaScript语言可以通过对该对象的访问,把ー些程序逻辑(如请求小说具体内容的逻辑)委托给DLL中相应的C++对象处理,实现了 C++和JavaScript的结合。本实施例中,BHO请求是一个调用浏览器的接ロ,该接ロ被调用后浏览器会把其Browser对象交给发起BHO请求的C++程序(即,使用C++语言编写的注入程序)。C++程序可以用该Browser对象,注入自定义的JavaScript对象(即使用JavaScript语言编写的自定义对象,本实施例中为_360SafeExplorer)。“_360SafeExplorer”是本实施例中自定义的JavaScript对象,浏览器使用的JavaScript语言能够通过它获取和处理网页中的电子书数据,如获取网页内容,进而通过对网页内容进行分析获取小说内容,下ー页的URL,上ー页URL等等,进而将这些数据发送给浏览器进行显示。通过在浏览器中注入JavaScript语言的自定义对象,可以使阅读模式的JavaScript代码执行ー些操作,如获取小说网页的具体内容信息,获取下ー页的URL,获取目录页的URL等等。JavaScript语言编写的自定义对象更易于被浏览器解析和读取,提高浏览器的执行速度和效率。SetSite接ロ是BHO对象的IObjectWithSite接ロ的ー个函数。该函数的声明如下HRESULT SetSite (IUnknown^pUnkSite)
其中,通过pUnkSite这个指针能够获得Browser对象的IWebBrowser2接ロ,从 IWebBrowser2 接 ロ 获取 active document automation object 对象,从该对象获取IHTMLDocument2 接 ロ,调用 get—Script 方法,获取 script 对象,表现为 IDispatchEx 接ロ,从IDispatchEx接口中调用GetDispID方法,为新的JavaScript对象获取ー个的ID,再调用InvokeEx方法,将该ID作为对应的—360SafeExplorer对象对应起来,从此_360SafeExplorer对象,就可以在JavaScript语言中运用。优选地,本实施例中的—360SafeExplorer可以包括reader(阅读器)对象,用于下载电子书网站中的电子书的正文、解析电子书内容,以及保存电子书的最新章节,具体到本实施例,该reader(阅读器)对象可以用于下载小说正文,解析小说内容,保存最新章节等。
优选地,在实现时,reader对象可以包括的接ロ有navigate方法(导航类)用于访问电子书页面,本实施例中用于访问某一小说页面;saveLastReadChapter方法(保存类)用于保存用户在电子书网站最后一次阅读的电子书的信息,本实施例中用于保存最新阅读小说;onDocumentComplet方法(解析类)用于从ー个电子书网页中解析出包括标题、正文、和上下页信息在内的信息,本实施例中用于一旦该小说页面访问完毕,解析成标题,正文,上ー页,下一页等信息。优选地,注入程序,本实施例中为360SafeExplorer,还可以包括以下至少之ーreferenceUrl对象(即网址获取对象),用于获取当前电子书网页的网址,本实施例中用于获取当前小说阅读页面URL;config对象(即配置对象),用于获取当前用户的对当前电子书网页的配置信息,本实施例中用于获取用户当前的配置信息statistics对象(即统计对象),用于对当前用户的历史浏览行为信息进行统计分析,本实施例中用于用户习惯统计。本实施例中,当用户点击按钮进入阅读模式时,浏览器会先判断待访问的网页是否为包含小说内容的网页,如果是则会调用浏览器的访问页面接ロ,通过浏览器重新访问ー个URL,新访问的URL实质是程序本身(注入程序,即本实施例的DLL文件)包含的ー个资源URL,该文件包含阅读模式的JavaScript代码,这样浏览器会加载该JavaScript代码。同时,在网页地址栏上显示se:novel (可选方案,也可不显示)。该网页加载完成之后,C++程序会收到“NavigateComplete”事件通知,在该通知上判断如果网页地址栏显示为se:novel,则向浏览器发出加载BHO请求。浏览器收到之后,会把自己的Browser对象交给C++程序(即注入程序DLL文件)。其中,Browser对象具有浏览器的全部功能,得到Browser对象后能收到该浏览器的一切事件,能在该Browser对象中注入JavaScript对象,并能调用接ロ让Browser访问URL等。小说网页使用的JavaScript语言调用_360SafeExplorer对象下的方法,浏览器的JavaScript解析器,会自动在内部去找该对象所对应的代码,如果发现是被外界注入的,会获取注入时对应的代码,这部分代码即是DLL中的C++程序,这样,C++程序会接管该操作,实现诸如请求小说具体内容等的委托逻辑。步骤S308 :使用自定义对象访问小说网页,获取和处理小说网页中的数据,并将处理后的数据发送给浏览器进行显示。
JavaScript资源页(包括JavaScript的渲染源代码,以及JavaScript所用到的资源元素)被加载后会调用DLL文件中的C++对象,获取小说内容(不包含广告,通过编程实现广告过滤),C++对象使用内部的WebBrowser访问小说页面,根据内部的规则获取小说的正文内容,再转交给JavaScript对象去进行前端渲染,然后交给浏览器显示。
优选地,在获取到小说的正文内容后,可以将该内容的数据设置为不可复制数据,从而禁止小说内容的导出功能,防止任意拷贝,实现知识产权保护。本步骤中,C++对象即DLL文件中的C++代码中的对象,浏览器的JavaScript使用该对象的方法,如Navagate方法,把要访问的小说页面转交进来,该方法会通过内置的一个浏览器(WEBBROWSER)访问小说页面。内部的规则,即电子书页面解析规则,用于获取电子书各部分数据和/或属性。优选地,电子书页面解析规则包括电子书内容提取规则,用于提取电子书网站的当前网页所属的电子书的正文数据、章节内容节数据、首页、书名、和目录地址。更优选地,电子书页面解析规则还包括以下至少之一电子书网站确定规则,用于根据用户输入的网址,确定该网址对应的网站是否为电子书网站;电子书标识获取规则,用于获取电子书网站的当前网页所属的电子书标识和章节标识。本实施例中,内部的规则指对小说页面的解析规则,该规则表明了那个html语言标签下是标题,那个标签下是小说正文,那个标签下的属性是下ー页,或者上ー页。通过内置的浏览器获取到的页面之后,对该页面进行分析得出。自定义对象根据该内部的规则,可以获取网页中的电子书正文的数据,如小说正文的数据,进而对该数据进行前端渲染后,交给浏览器进行显示。例如,本实施例中,可以通过电子书网站确定规则,判断当前URL是否为小说网站的 URL ,如URL 为"~http://www. qidian. com/BookReader/I I !aspx ",解析如下以 http://www. qidian. com/BookReader/ 开头,同时 URL 不包含 *· aspx” 字符,其中,*可替代任何数量字符为小说URL,通过http://www. qidian. com/BookReader/可以判断,待访问的网站为小说网站;可以通过电子书标识获取规则,获取当前小说页面所属的小说ID,章节ID,如在“http://www. qidian. com/BookReader/*· aspx” 中 * 对应的部分为 bookid ;可以通过电子书内容提取规则,提取当前小说首页,书名,目录URL,当前小说章节内容页,小说正文等,如从〈title el = " I" id = " IbChapterName " name=""classname = " " value = " " regular = " " tag=" div" /> 中小说标题为“I”,在Html页面中,寻■找Id为IbChapterName的标签,该标签名称为div, div下的所有内容即为小说正文。步骤S310 :姆_设定时间使用注入程序中的WebBrowser访问小说网页,获取小说网页的更新信息。浏览器支持用户对小说的收藏,一旦用户添加了小说,会每隔设定时间,如每隔6个小时,在后台使用DLL文件中的内部的WebBrowser去访问小说的页面,根据内部的首页模板,使用对DOM结构解析的接ロ技木,获取最新章节信息,一旦最新章节信息发生了变化,显示在面板上,同时弹出气泡通知用户有新的小说更新。小说一般分为小说首页、目录页、章节页,首页有书名、内容简介、作者简介、最新章节的信息;目录页是目录信息,通过目录页能访问每个小说章节;章节页是小说正文内容。最新章节信息一般保存在小说首页,本实施例中为每个小说网站的首页建立了ー个模板,该模板即为内部的首页模板。因为使用内部浏览器访问,所以能够拿到小说首页的DOM结构,同时,可以为每个小说网站都建立了ー套Html语言的解析规则(电子书页面解析规则),该规则告诉注入程序,哪个标签下是小说书名,哪个标签下是作者名,哪个标签下是最新章节。这样,对DOM结构进行分析,即可找出哪个部分是最新章节等。步骤S312 :用户点击面板上面更新的最新章节,为用户提供快速的阅读入口。通过本实施例,使用BHO技术,用户每开启一个小说网页,就会加载ー个BHO请求,本质上就新开启了ー个线程,用户可以同时开启多个网页实现多线程的访问,提升了程序性能,给用户更强的视觉体验,又保持了程序的稳定;采用C++结合JavaScript多线程加载小说,加载速度更快而且稳定;由于在线程内获取了小说的内容,并只将内容分离出来加载给JavaScript部分去渲染,在这样的阅读模式下,用户不必再受到广告的骚扰(JavaScript加载不到广告);同时,定时使用内部的WebBrowser去访问小说页面,具有小说更新提醒功能;并且,由于只加载小说正文内容,屏蔽了广告,也避免了浏览器调用Flash产生的崩溃(现有浏览器崩溃中,统计显示有多达30%是由于加载的Flash页面产生的崩溃想象,不采用Flash,就不会有该问题的产生);此外,可以在注入程序中设定不允许电子书数据导出,从而不允许用户对小说文本进行拷贝,实现知识产权保护。可见,通过本实施例,实现了(I)可以在保证速度和稳定性的前提下,给用户最大的友好体验;(2)可以去掉阅读时的广告;(3)使用多线程技木,给用户快速呈现的阅读体验;(4)网络小说有更新时可以及时提醒用户。需要说明的是,本实施例中的DLL文件可以设置于浏览器数据包内部,随同浏览器的安装而一同安装;也可以是独立于浏览器文件的DLL文件,在浏览器安装后供浏览器加载或调用。另外,本实施例中以C++和JavaScript语言结合实现注入程序为例,但不限于此,在实际应用中,本领域技术人员还可以采用其它适当语言实现注入程序,如完全采用JavaScript语言实现注入程序等。使用C++和JavaScript语言结合实现注入程序,可以实现更快的电子书网站访问速度,更高的电子书网站访问效率。实施例四參照图4,示出了根据本申请实施例四的ー种电子书数据处理装置的结构框图。本实施例的电子书数据处理装置包括确定模块402,用于确定用户使用浏览器访问电子书网站;注入访问模块404,用于向浏览器发起BHO请求,请求使用设定的注入程序访问电子书网站,其中,注入程序用于获取和处理电子书网站中的电子书数据。优选地,注入访问模块404,用于每当浏览器开启ー个电子书网站的网页时,向浏览器发起至少ー个BHO请求,请求使用设定的注入程序访问电子书网站。
优选地,注入访问模块404,用于向浏览器发起BHO请求,请求浏览器将其浏览器Browser对象交给注入程序,如用C++语言编写的注入程序,供注入程序访问电子书网站。优选地,注入访问模块404,用于向浏览器发起BHO请求,请求浏览器将其Browser对象交给注入程序,通过注入程序向浏览器注入自定义对象,如使用JavaScript语言编写的自定义对象;使用自定义对象访问电子书网站中的网页,获取和处理网页中的电子书数据,并将处理后的电子书数据发送给浏览器进行显示。优选地,注入访问模块404在使用自定义对象访问电子书网站中的网页吋,自定义对象通过注入程序中的WebBrowser访问电子书网站中的网页。
优选地,注入访问模块404在获取和处理电子书网站的网页中的电子书数据,并将处理后的电子书数据发送给浏览器进行显示时,根据电子书页面解析规则获取网页中的电子书正文的数据,其中,电子书页面解析规则用于指示电子书各部分数据和/或属性在网页中的位置;通过自定义对象对电子书正文的数据进行前端渲染后,交给浏览器进行显
/Jn ο优选地,电子书页面解析规则包括电子书内容提取规则,用于提取电子书网站的当前网页所属的电子书的正文数据、章节内容节数据、首页、书名、和目录地址。优选地,电子书页面解析规则还包括以下至少之ー电子书网站确定规则,用于根据用户输入的网址,确定该网址对应的网站是否为电子书网站;电子书标识获取规则,用于获取所述电子书网站的当前网页所属的电子书标识和章节标识。优选地,注入访问模块404还用于在根据电子书页面解析规则获取网页中的电子书正文的数据后,将电子书正文的数据设置为不可复制数据。优选地,上述注入程序使用C++语言编写,自定义对象使用JavaScript语言编写。优选地,注入访问模块404,用于向浏览器发起BHO请求,通过BHO请求的SetSite接ロ请求浏览器将其Browser对象交给注入程序。优选地,本实施例的电子书数据处理装置还包括界面加载模块406,用于在注入访问模块404向浏览器发起BHO请求之前,调用注入程序中的资源页,以加载显示电子书数据的界面。优选地,本实施例的电子书数据处理装置还包括更新模块408,用于在注入访问模块404向浏览器发起BHO请求,请求使用设定的注入程序访问电子书网站之后,每隔设定时间使用注入程序中的WebBrowser访问电子书网站中的网页,获取网页的更新信息。优选地,更新模块408,用于姆_设定时间使用注入程序中的WebBrowser访问电子书网站中的网页,根据网页的DOM结构,获取网页的更新信息。优选地,注入程序包括阅读器对象,用于下载电子书网站中的电子书的正文、解析电子书内容,以及保存电子书的最新章节。优选地,阅读器对象包括导航类,用于访问电子书页面;保存类,用于保存用户在电子书网站最后一次阅读的电子书的信息;解析类,用于从ー个电子书网页中解析出包括标题、正文、和上下页信息在内的信息。优选地,注入程序还包括以下至少之ー网址获取对象,用于获取当前电子书网页的网址;配置対象,用于获取当前用户的对当前电子书网页的配置信息;统计对象,用于对当前用户的历史浏览行为信息进行统计分析。优选地,浏览器使用IE内核和/或CHROME内核。本实施例的电子书数据处理装置用于实现前述多个方法实施例中相应的电子书数据处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。需要说明的是,本申请的方案不仅适用于常规浏览器,也同样适用于使用IE内核和CHROME内核的双核浏览器,当运行于CHROME内核时,可以使用CHROME的扩展机制中称作"content script"的技术,如npapi插件,实现本申请的电子书数据处理方案。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相參见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处參见方法实施例的部分说明即可。以上对本申请所提供的ー种电子书数据处理方法和装置进行了详细介绍,本文中 应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.ー种电子书数据处理方法,其特征在于,包括 确定浏览器访问电子书网站; 向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站,其中,所述注入程序用于获取和处理所述电子书网站中的电子书数据。
2.根据权利要求I所述的方法,其特征在于,所述向所述浏览器发起浏览器辅助对象BHO请求的步骤包括 每当所述浏览器开启ー个所述电子书网站的网页,则向所述浏览器发起至少ー个所述BHO请求。
3.根据权利要求I所述的方法,其特征在于,所述向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站的步骤包括 向所述浏览器发起所述BHO请求,请求所述浏览器将其浏览器Browser对象交给所述注入程序,供所述注入程序访问所述电子书网站。
4.根据权利要求3所述的方法,其特征在于,所述请求所述浏览器将其浏览器Browser对象交给所述注入程序,供所述注入程序访问所述电子书网站的步骤包括 请求所述浏览器将其Browser对象交给所述注入程序,通过所述注入程序向所述浏览器注入自定义对象; 使用所述自定义对象访问所述电子书网站中的网页,获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显示。
5.根据权利要求4所述的方法,其特征在于,所述使用所述自定义对象访问所述电子书网站中的网页的步骤包括 所述自定义对象通过所述注入程序中的WebBrowser访问所述电子书网站中的网页。
6.根据权利要求5所述的方法,其特征在干,所述获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显示的步骤包括 根据电子书页面解析规则获取所述网页中的电子书正文的数据,其中,所述电子书页面解析规则用于获取电子书各部分数据和/或属性; 通过所述自定义对象对所述电子书正文的数据进行前端渲染后,交给所述浏览器进行显不O
7.根据权利要求6所述的方法,其特征在于,所述电子书页面解析规则包括电子书内容提取规则,用于提取所述电子书网站的当前网页所属的电子书的正文数据、章节内容节数据、首页、书名、和目录地址。
8.根据权利要求7所述的方法,其特征在于,所述电子书页面解析规则还包括以下至少之ー 电子书网站确定规则,用于根据用户输入的网址,确定该网址对应的网站是否为电子书网站; 电子书标识获取规则,用于获取所述电子书网站的当前网页所属的电子书标识和章节标识。
9.根据权利要求6所述的方法,其特征在于,在所述根据电子书页面解析规则获取网页中的电子书正文的数据的步骤之后,还包括 将所述电子书正文的数据设置为不可复制数据。
10.根据权利要求4至9任一项所述的方法,其特征在于,所述注入程序使用C++语言编写,所述自定义对象使用JavaScript语言编写。
11.根据权利要求3所述的方法,其特征在干,向所述浏览器发起所述BHO请求,请求所述浏览器将其浏览器Browser对象交给所述注入程序的步骤包括 向所述浏览器发起所述BHO请求,通过所述BHO请求的SetSite接ロ请求所述浏览器将其Browser对象交给所述注入程序。
12.根据权利要求I所述的方法,其特征在于,在向所述浏览器发起浏览器辅助对象BHO请求的步骤之前,还包括 调用所述注入程序中的资源页,以加载显示所述电子书数据的界面。
13.根据权利要求I所述的方法,其特征在于,在向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站的步骤之后,还包括 姆_设定时间使用所述注入程序中的WebBrowser访问所述电子书网站中的网页,获取所述网页的更新信息。
14.根据权利要求13所述的方法,其特征在于,获取所述网页的更新信息的步骤包括 根据所述网页的文档对象模型DOM结构,获取所述网页的更新信息。
15.根据权利要求1-9、11-14中任一项所述的方法,其特征在于,所述注入程序包括阅读器对象,用于下载所述电子书网站中的电子书的正文、解析所述电子书内容,以及保存所述电子书的最新章节。
16.根据权利要求15所述的方法,其特征在于,所述阅读器对象包括 导航类,用于访问电子书页面; 保存类,用于保存用户在所述电子书网站最后一次阅读的电子书的信息; 解析类,用于从ー个电子书网页中解析出包括标题、正文、和上下页信息在内的信息。
17.根据权利要求15所述的方法,其特征在于,所述注入程序还包括以下至少之ー 网址获取对象,用于获取当前电子书网页的网址; 配置对象,用于获取当前用户的对当前电子书网页的配置信息; 统计对象,用于对当前用户的历史浏览行为信息进行统计分析。
18.根据权利要求1-9、11-14中任一项所述的方法,其特征在于,所述浏览器使用IE内核和/或CHROME内核。
19.ー种电子书数据处理装置,其特征在于,包括 确定模块,用于确定浏览器访问电子书网站; 注入访问模块,用于向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站,其中,所述注入程序用于获取和处理所述电子书网站中的电子书数据。
20.根据权利要求19所述的装置,其特征在于,所述注入访问模块,用于每当所述浏览器开启ー个所述电子书网站的网页,则向所述浏览器发起至少ー个所述BHO请求,请求使用设定的注入程序访问所述电子书网站。
21.根据权利要求19所述的装置,其特征在于,所述注入访问模块,用于向所述浏览器发起所述BHO请求,请求所述浏览器将其浏览器Browser对象交给所述注入程序,供所述注入程序访问所述电子书网站。
22.根据权利要求21所述的装置,其特征在于,所述注入访问模块,用于向所述浏览器发起所述BHO请求,请求所述浏览器将其Browser对象交给所述注入程序,通过所述注入程序向所述浏览器注入自定义对象;使用所述自定义对象访问所述电子书网站中的网页,获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显不O
23.根据权利要求22所述的装置,其特征在于,所述注入访问模块在使用所述自定义对象访问所述电子书网站中的网页吋, 所述自定义对象通过所述注入程序中的WebBiOwser访问所述电子书网站中的网页。
24.根据权利要求23所述的装置,其特征在于,所述注入访问模块在获取和处理所述网页中的电子书数据,并将处理后的所述电子书数据发送给所述浏览器进行显示时,根据电子书页面解析规则获取所述网页中的电子书正文的数据,其中,所述电子书页面解析规则用于获取电子书各部分数据和/或属性;通过所述自定义对象对所述电子书正文的数据进行前端渲染后,交给所述浏览器进行显示。
25.根据权利要求24所述的装置,其特征在于,所述电子书页面解析规则包括电子书内容提取规则,用于提取所述电子书网站的当前网页所属的电子书的正文数据、章节内容节数据、首页、书名、和目录地址。
26.根据权利要求25所述的装置,其特征在于,所述电子书页面解析规则还包括以下至少之ー 电子书网站确定规则,用于根据用户输入的网址,确定该网址对应的网站是否为电子书网站; 电子书标识获取规则,用于获取所述电子书网站的当前网页所属的电子书标识和章节标识。
27.根据权利要求24所述的装置,其特征在于,所述注入访问模块还用于在根据电子书页面解析规则获取所述网页中的电子书正文的数据后,将所述电子书正文的数据设置为不可复制数据。
28.根据权利要求22至27任一项所述的装置,其特征在于,所述注入程序使用C++语言编写,所述自定义对象使用JavaScript语言编写。
29.根据权利要求21所述的装置,其特征在于,所述注入访问模块,用于向所述浏览器发起所述BHO请求,通过所述BHO请求的SetSite接ロ请求所述浏览器将其Browser对象交给所述注入程序。
30.根据权利要求19所述的装置,其特征在于,还包括 界面加载模块,用于在所述注入访问模块向所述浏览器发起浏览器辅助对象BHO请求之前,调用所述注入程序中的资源页,以加载显示所述电子书数据的界面。
31.根据权利要求19所述的装置,其特征在于,还包括 更新模块,用于在所述注入访问模块向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站之后,每隔设定时间使用所述注入程序中的WebBrowser访问所述电子书网站中的网页,获取所述网页的更新信息。
32.根据权利要求23所述的装置,其特征在于,所述更新模块,用于每隔设定时间使用所述注入程序中的WebBrowser访问所述电子书网站中的网页,根据所述网页的文档对象模型DOM结构,获取所述网页的更新信息。
33.根据权利要求19-27、29-32中任一项所述的装置,其特征在于,所述注入程序包括阅读器对象,用于下载所述电子书网站中的电子书的正文、解析所述电子书内容,以及保存所述电子书的最新章节。
34.根据权利要求33所述的装置,其特征在于,所述阅读器对象包括 导航类,用于访问电子书页面; 保存类,用于保存用户在所述电子书网站最后一次阅读的电子书的信息; 解析类,用于从ー个电子书网页中解析出包括标题、正文、和上下页信息在内的信息。
35.根据权利要求33所述的装置,其特征在于,所述注入程序还包括以下至少之ー 网址获取对象,用于获取当前电子书网页的网址; 配置对象,用于获取当前用户的对当前电子书网页的配置信息; 统计对象,用于对当前用户的历史浏览行为信息进行统计分析。
36.根据权利要求19-27、29-32中任一项所述的装置,其特征在于,所述浏览器使用IE内核和/或CHROME内核。
全文摘要
本申请提供了一种电子书数据处理方法与装置,其中,电子书数据处理方法包括确定浏览器访问电子书网站;向所述浏览器发起浏览器辅助对象BHO请求,请求使用设定的注入程序访问所述电子书网站,其中,所述注入程序用于获取和处理所述电子书网站中的电子书数据。通过本申请,提高了浏览器下载电子书数据的速度,提升了用户的阅读体验。
文档编号G06F17/30GK102663050SQ20121008908
公开日2012年9月12日 申请日期2012年3月29日 优先权日2012年3月29日
发明者任寰, 李超, 糜裕峰, 谢洲为 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1