首页> 中国专利> 新闻资讯抓取方法、装置、电子设备及存储介质

新闻资讯抓取方法、装置、电子设备及存储介质

摘要

本发明涉及大数据技术领域,提供一种新闻资讯抓取方法、装置、电子设备及存储介质,所述方法包括:获取多个种子URL生成目标新闻资讯抓取树;启动主线程读取目标新闻资讯抓取树中每个抓取节点的目标种子URL及对应的抓取策略;在读取了预设数量的目标种子URL时,启动多个子线程,将预设数量的目标种子URL分给多个子线程;控制每个子线程使用Puppeteer打开每个目标种子URL进行抓取处理;通过主线程对多个子线程的抓取结果进行统计得到目标新闻资讯的目标抓取结果。本发明通过使用Puppeteer启动无头浏览器打开每个目标种子URL,并启动多个子线程进行抓取处理,减少了真实浏览器的渲染工作,提高了目标新闻资讯的抓取效率。

著录项

  • 公开/公告号CN113065055A

    专利类型发明专利

  • 公开/公告日2021-07-02

    原文格式PDF

  • 申请/专利号CN202110432611.3

  • 发明设计人 郑德生;

    申请日2021-04-21

  • 分类号G06F16/953(20190101);G06F16/955(20190101);

  • 代理机构44334 深圳市赛恩倍吉知识产权代理有限公司;

  • 代理人杨毅玲;刘丽华

  • 地址 518000 广东省深圳市前海深港合作区妈湾兴海大道3048号前海自贸大厦1-34层

  • 入库时间 2023-06-19 11:42:32

说明书

技术领域

本发明涉及大数据技术领域,具体涉及一种新闻资讯抓取方法、装置、电子设备及存储介质。

背景技术

传统的新闻资讯抓取,是通过爬虫程序获取到网站的URL所对应的http请求,并解析http请求返回的结果,但目前大部分新闻资讯网页,是使用ajax来获取资讯内容,通过Javascript来实现页面内容的渲染,传统的爬虫无法抓取有效数据,或者只能抓取部分有效数据,此外,还有一些程序通过打开浏览器,并通过DOM元素的位置来抓取新闻资讯内容。

然而,由于这些程序必须运行在可视化的操作系统上,没办法运行在linux服务器上,导致抓取的新闻资讯的效率和准确率低下。

因此,有必要提供一种快速准确的新闻资讯抓取的方法。

发明内容

鉴于以上内容,有必要提出一种新闻资讯抓取方法、装置、电子设备及存储介质,通过使用Puppeteer启动无头浏览器打开每个目标种子URL,并启动多个子线程进行抓取处理,减少了真实浏览器的渲染工作,提高了目标新闻资讯的抓取效率。

本发明的第一方面提供一种新闻资讯抓取方法,所述方法包括:

解析接收到的目标新闻资讯的抓取请求获取多个种子URL;

为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,其中,所述目标新闻资讯抓取树的每个抓取节点中包含有对应的抓取策略;

启动主线程逐个读取所述目标新闻资讯抓取树中的每个抓取节点的目标种子URL及对应的抓取策略;

当侦测到所述主线程读取了预设数量的目标种子URL时,启动多个子线程,并将所述主线程读取的所述预设数量的目标种子URL按照预设的分配规则分给所述多个子线程;

控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理;

当侦测到所述多个子线程完成抓取处理后,通过所述主线程对所述多个子线程的抓取结果进行统计得到所述目标新闻资讯的目标抓取结果。

可选地,所述为每个所述种子URL创建抓取策略包括:

分析每个所述种子URL中的页面内容和页面结构得到分析结果;

获取每个所述种子URL对应的抓取需求;

根据每个所述种子URL的分析结果和对应的抓取需求为每个所述种子URL创建抓取策略。

可选地,所述根据所述多个种子URL生成目标新闻资讯抓取树包括:

将所述多个种子URL中的每个所述种子URL的抓取节点转换为对应的目标新闻资讯抓取树的节点;

将所述多个种子URL中的每个所述种子URL的抓取节点之间的引用关系转换为对应的目标新闻资讯抓取树中节点之间的边,其中,所述目标新闻资讯抓取树中节点之间的边作为所述目标新闻资讯抓取树的节点之间的引用关系;

根据所述目标新闻资讯抓取树的节点和所述目标新闻资讯抓取树中节点之间的边生成目标新闻资讯抓取树。

可选地,所述控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理包括:

使用Puppeteer启动无头浏览器打开所述主线程读取的每个目标种子URL及对应的抓取策略;

跳转至所述目标种子URL对应的目标页面;

按照所述目标种子URL对应的抓取策略调用所述Puppeteer对所述目标页面进行抓取处理。

可选地,所述方法还包括:

侦测是否有子线程发生异常事件;

当侦测到有子线程发生异常事件时,识别发生异常事件的子线程对应的目标抓取节点;

对所述目标抓取节点中的目标种子URL及对应的目标抓取策略进行校验。

可选地,所述对所述目标抓取节点中的目标种子URL及对应的目标抓取策略进行校验包括:

将所述目标抓取节点中目标种子URL与所述多个种子URL进行匹配;

当所述目标抓取节点中的目标种子URL与所述多个种子URL中的任意一个种子URL匹配时,判断目标抓取策略是否为所述目标种子URL的抓取策略;

当所述目标抓取策略为所述目标种子URL的抓取策略时,发送抓取建议至客户端;或者

当所述目标抓取策略不为所述目标种子URL的抓取策略时,将所述目标抓取节点中的抓取策略进行修正,根据修正后的抓取策略对所述目标抓取节点中目标种子URL进行二次抓取。

本发明的第二方面提供一种新闻资讯抓取方法,所述方法包括:

解析接收到的目标新闻资讯的抓取请求获取多个种子URL;

为每个所述种子URL创建抓取策略,并将每个所述种子URL与对应的抓取策略进行关联;

启动目标主线程创建任务队列,并读取关联后的每个所述种子URL依次发送至所述任务队列中;

判断所述任务队列中是否存在相同的种子URL;

当所述任务队列中不存在所述相同的种子URL时,每隔预设周期查询所述目标主线程启动的多个目标子线程中是否存在空闲子线程;

当所述目标主线程启动的多个目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程;

控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取;

当侦测到所述空闲子线程完成目标新闻资讯抓取后,通过所述目标主线程对所述空闲子线程的抓取结果进行统计得到所述目标新闻资讯的抓取结果。

本发明的第三方面提供一种新闻资讯抓取装置,所述装置包括:

解析模块,用于解析接收到的目标新闻资讯的抓取请求获取多个种子URL;

生成模块,用于为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,其中,所述目标新闻资讯抓取树的每个抓取节点中包含有对应的抓取策略;

读取模块,用于启动主线程逐个读取所述目标新闻资讯抓取树中的每个抓取节点的目标种子URL及对应的抓取策略;

启动模块,用于当侦测到所述主线程读取了预设数量的目标种子URL时,启动多个子线程,并将所述主线程读取的所述预设数量的目标种子URL按照预设的分配规则分给所述多个子线程;

抓取模块,用于控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理;

统计模块,用于当侦测到所述多个子线程完成抓取处理后,通过所述主线程对所述多个子线程的抓取结果进行统计得到所述目标新闻资讯的目标抓取结果。

本发明的第四方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的新闻资讯抓取方法。

本发明的第五方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的新闻资讯抓取方法。

综上所述,本发明所述的新闻资讯抓取方法、装置、电子设备及存储介质,一方面,控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标抓取节点的目标种子URL,并进行抓取处理,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率;另一方面,启动主线程逐个读取所述种子URL目标新闻资讯抓取树中的目标抓取节点的目标种子URL及对应的抓取策略,避免读取目标种子URL过程中出现遗漏或者重复读取的现象,提高目标种子UR L的读取准确性;最后,为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率,并根据多个种子URL生成目标新闻资讯抓取树,从目标新闻资讯抓取树的每个节点进行抓取,避免了重复抓取或者漏抓取种子URL的现象,提高了目标新闻资讯的抓取准确率。

附图说明

图1是本发明实施例一提供的新闻资讯抓取方法的流程图。

图2是本发明实施例二提供的新闻资讯抓取方法的流程图。

图3是本发明实施例三提供的新闻资讯抓取装置的结构图。

图4是本发明实施例四提供的新闻资讯抓取装置的结构图

图5是本发明实施例五提供的电子设备的结构示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

图1是本发明实施例一提供的新闻资讯抓取方法的流程图。

在本实施例中,所述新闻资讯抓取方法可以应用于电子设备中,对于需要进行新闻资讯抓取的电子设备,可以直接在电子设备上集成本发明的方法所提供的新闻资讯抓取的功能,或者以软件开发工具包(Software Development Kit,SDK)的形式运行在电子设备中。

如图1所示,所述新闻资讯抓取方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。

S11,解析接收到的目标新闻资讯的抓取请求获取多个种子URL。

本实施例中,当需要对目标新闻资讯进行抓取时,通过客户端发起抓取请求至服务端,具体地,所述客户端可以为是能手机、IPAD或者其他现有的具有发送功能的设备,所述服务端可以为抓取子系统,在抓取过程中,如所述客户端可以向所述抓取子系统发送抓取请求,当所述服务端接收到客户端发送的抓取请求时,对抓取请求进行解析处理。

本实施例中,所述抓取请求中包含有抓取的目标新闻资讯对应的抓取需求、种子URL、种子URL的页面内容和页面结构等资讯。

S12,为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,其中,所述目标新闻资讯抓取树的每个抓取节点中包含有对应的抓取策略。

本实施例中,由于每个种子URL对应的页面内容、页面结构、抓取需求不同,故为每个所述种子URL创建不同的抓取策略。

在一个可选的实施例中,所述为每个所述种子URL创建抓取策略包括:

分析每个所述种子URL中的页面内容和页面结构得到分析结果;

获取每个所述种子URL对应的抓取需求;

根据每个所述种子URL的分析结果和对应的抓取需求为每个所述种子URL创建抓取策略。

本实施例中,所述页面内容包括页面查看次数、独特访问、页面停留时间等内容,所述页面结构是指每个页面的层级关系。

示例性的,第一个种子URL对应的抓取需求为文字,分析第一个种子URL中的文字内容和文字结构设置对应的抓取策略为:从第一个种子URL的起始页开始,随机选择一个URL进入,一层一层抓取目标文字内容,直至完成第一个种子URL的抓取;第二个种子URL对应的抓取需求为图片,分析第二个种子URL中的图片内容和图片结构设置对应的抓取策略为:预测第二个种子URL中的每个URL与所述第二个种子URL的相似度,选取相似度较大的多个URL进行抓取。

在一个可选的实施例中,所述根据所述多个种子URL生成目标新闻资讯抓取树包括:

将所述多个种子URL中的每个所述种子URL的抓取节点转换为对应的目标新闻资讯抓取树的节点;

将所述多个种子URL中的每个所述种子URL的抓取节点之间的引用关系转换为对应的目标新闻资讯抓取树中节点之间的边,其中,所述目标新闻资讯抓取树中节点之间的边作为所述目标新闻资讯抓取树的节点之间的引用关系;

根据所述目标新闻资讯抓取树的节点和所述目标新闻资讯抓取树中节点之间的边生成目标新闻资讯抓取树。

本实施例中,所述目标新闻资讯抓取树是根据所述多个种子URL对应的抓取节点及每个种子URL的抓取节点之间的引用关系生成的,具体的,所述目标新闻资讯抓取树的节点之间的引用关系可以为预先设置的,例如,可以根据每个种子URL与所述目标新闻资讯的关联度进行预先设置,也可以多个种子URL之间的关联度进行预先设置。

本实施例中,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率,并根据多个种子URL生成目标新闻资讯抓取树,从目标新闻资讯抓取树的每个节点进行抓取,避免了重复抓取或者漏抓取种子URL的现象,提高了目标新闻资讯的抓取准确率。

S13,启动主线程逐个读取所述目标新闻资讯抓取树中的每个抓取节点的目标种子URL及对应的抓取策略。

本实施例中,当所述服务端接收到所述抓取请求时,启动主线程逐个读取所述目标新闻资讯抓取树中的每个抓取节点的目标种子URL及对应的抓取策略,避免读取目标种子URL过程中出现遗漏或者重复读取的现象,提高目标种子UR L的读取准确性。

S14,当侦测到所述主线程读取了预设数量的目标种子URL时,启动多个子线程,并将所述主线程读取的所述预设数量的目标种子URL按照预设的分配规则分给所述多个子线程。

本实施例中,可以预先设置分配规则,具体地,所述预设的分配规则可以为均分、随机分配、或者按照一定的倍数进行分配。

本实施例中,通过同时启动多个子线程能够节省主线程读取数据并启动子线程的等待时间,进一步提高服务端的处理效率。

在其他可选的实施例中,S14还可以为:当侦测到所述主线程读取了预设数量的目标种子URL时,对应启动一个子线程,并将所述预设数据的目标种子URL分发至所述子线程。

本实施例中,所述预设数量为预先设置的启动子线程的临界值。

示例性的,假设预设数量为10万,当主线程从第1个抓取节点读取到第10万个抓取节点的目标种子URL时,服务端对应启动一个子线程;接着,当主线程从第10万零1个抓取节点读取到第20万个抓取节点的目标种子URL时,服务端再对应启动一个子线程。即,服务端每侦测到主线程读取了预设数量的抓取节点的目标种子URL时,启动一个子线程。通过启动多个子线程,利用子线程处理对应数量的目标种子URL,能够在一定程度上加快目标种子URL中的新闻资讯的抓取速度。

S15,控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理。

本实施例中,所述Puppeteer是一个Node.js库,提供了高级API来控制Chrome或Chromium,具体地,所述Puppeteer默认的运行模式是无头的,但是可以配置成非无头模式。

在一个可选的实施例中,所述控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理包括:

使用Puppeteer启动无头浏览器打开所述主线程读取的每个目标种子URL及对应的抓取策略;

跳转至所述目标种子URL对应的目标页面;

按照所述目标种子URL对应的抓取策略调用所述Puppeteer对所述目标页面进行抓取处理。

本实施例中,由于Puppeteer可以运行在linux服务器上,提供了一系列的API,确保了调用API的便利性,使用Puppeteer启动无头浏览器打开每个抓取节点的目标种子URL,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率。

S16,当侦测到所述多个子线程完成抓取处理后,通过所述主线程对所述多个子线程的抓取结果进行统计得到所述目标新闻资讯的目标抓取结果。

本实施例中,当侦测到所述多个子线程完成目标新闻资讯抓取后,通过主线程获取每个子线程的抓取结果。

本实施例中,所述抓取结果可以包括,但不限于:抓取成功的数据、抓取异常的数据、抓取识别的数据、抓取相同的图片数据、抓取相同的文字数据。

本实施例中,主线程获取到一个子线程的抓取结果,便将所述抓取结果存储在服务端的缓存中。当所有子线程都抓取完毕之后,主线程统计所有子线程的抓取结果,并根据所有的抓取结果进行统计,得到目标抓取结果。

进一步地,所述方法还包括:

侦测是否有子线程发生异常事件;

当侦测到有子线程发生异常事件时,将发生异常事件的子线程抓取处理后的数据进行删除。

本实施例中,通过对发生异常事件的子线程抓取处理后的数据进行删除,确保了抓取处理后的目标新闻资讯的准确性。

进一步地,所述方法还包括:

识别发生异常事件的子线程对应的目标抓取节点;

对所述目标抓取节点中的目标种子URL及对应的目标抓取策略进行校验。

在其他一些可选的实施例中,所述对所述目标抓取节点中的目标种子URL及对应的目标抓取策略进行校验包括:

将所述目标抓取节点中目标种子URL与所述多个种子URL进行匹配;

当所述目标抓取节点中的目标种子URL与所述多个种子URL中的任意一个种子URL匹配时,判断目标抓取策略是否为所述目标种子URL的抓取策略;

当所述目标抓取策略为所述目标种子URL的抓取策略时,发送抓取建议至所述客户端。

本实施例中,通过对发生异常事件的子线程对应的目标抓取节点中的目标种子URL与目标抓取策略进行校验,辅助运维人员快速分析抓取处理异常原因,提高了运维人员的工作效率。

本实施例中,所述抓取建议可以根据抓取异常的原因进行设置,具体地,所述抓取建议可以为建议所述客户端重新提供抓取需求或者建议客户端检查提供的种子URL是否出错。本实施例通过将所述抓取建议发送至所述客户端,辅助客户端快速做出决定,提高了客户体验及抓取效率。

进一步地,所述方法还包括:

当所述目标抓取节点中的目标种子URL与所述多个种子URL中的任意一个种子URL不匹配时,将所述目标抓取节点中的目标种子URL进行修正,对修正的目标种子URL进行二次抓取。

进一步地,所述方法还包括:

当所述目标抓取策略不为所述目标种子URL的抓取策略时,将所述目标抓取节点中的抓取策略进行修正,根据修正后的抓取策略对所述目标抓取节点中目标种子URL进行二次抓取。

本实施例中,对发生异常的目标抓取节点中的目标种子URL和抓取策略进行校验,当校验确定是目标种子URL和\或抓取策略不一致时,对发生异常的目标抓取节点中的目标种子URL和\或抓取策略进行修正后二次抓取,提高了抓取的目标新闻资讯的完整性。

综上所述,本实施例所述的新闻资讯抓取方法,一方面,控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标抓取节点的目标种子URL,并进行抓取处理,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率;另一方面,启动主线程逐个读取所述种子URL目标新闻资讯抓取树中的目标抓取节点的目标种子URL及对应的抓取策略,避免读取目标种子URL过程中出现遗漏或者重复读取的现象,提高目标种子UR L的读取准确性;最后,为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率,并根据多个种子URL生成目标新闻资讯抓取树,从目标新闻资讯抓取树的每个节点进行抓取,避免了重复抓取或者漏抓取种子URL的现象,提高了目标新闻资讯的抓取准确率。

实施例二

图2是本发明实施例二提供的新闻资讯抓取方法的流程图。

在本实施例中,所述新闻资讯抓取方法可以应用于电子设备中,对于需要进行新闻资讯抓取的电子设备,可以直接在电子设备上集成本发明的方法所提供的新闻资讯抓取的功能,或者以软件开发工具包(Software Development Kit,SDK)的形式运行在电子设备中。

如图2所示,所述新闻资讯抓取方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。

S21,解析接收到的目标新闻资讯的抓取请求获取多个种子URL。

本实施例中,当需要对目标新闻资讯进行抓取时,通过客户端发起抓取请求至服务端,具体地,所述客户端可以为是能手机、IPAD或者其他现有的具有发送功能的设备,所述服务端可以为抓取子系统,在抓取过程中,如所述客户端可以向所述抓取子系统发送抓取请求,当所述服务端接收到客户端发送的抓取请求时,对抓取请求进行解析处理。

本实施例中,所述抓取请求中包含有抓取的目标新闻资讯对应的抓取需求、种子URL、种子URL的页面内容和页面结构等资讯。

S22,为每个所述种子URL创建抓取策略,并将每个所述种子URL与对应的抓取策略进行关联。

本实施例中,由于每个种子URL对应的页面内容、页面结构、抓取需求不同,故为每个所述种子URL创建不同的抓取策略。

在一个可选的实施例中,所述为每个所述种子URL创建抓取策略包括:

分析每个所述种子URL中的页面内容和页面结构得到分析结果;

获取每个所述种子URL对应的抓取需求;

根据每个所述种子URL的分析结果和对应的抓取需求为每个所述种子URL创建抓取策略。

本实施例中,所述页面内容包括页面查看次数、独特访问、页面停留时间等内容,所述页面结构是指每个页面的层级关系。

示例性的,第一个种子URL对应的抓取需求为文字,分析第一个种子URL中的文字内容和文字结构设置对应的抓取策略为:从第一个种子URL的起始页开始,随机选择一个URL进入,一层一层抓取目标文字内容,直至完成第一个种子URL的抓取;第二个种子URL对应的抓取需求为图片,分析第二个种子URL中的图片内容和图片结构设置对应的抓取策略为:预测第二个种子URL中的每个URL与所述第二个种子URL的相似度,选取相似度较大的多个URL进行抓取。

本实施例中,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率。

S23,启动目标主线程创建任务队列,并读取关联后的每个所述种子URL依次发送至所述任务队列中。

本实施例中,由于每个种子URL与对应的抓取策略存在关联关系,当服务端接收到抓取请求时,根据所述抓取请求启动目标主线程创建任务队列,并将关联后的每个所述种子URL依次发送至所述任务队列。

本实施例中,通过创建任务队列的形式进行目标新闻资讯的抓取,可以避免每个种子URL被重复或者遗漏抓取的现象,提高了目标新闻资讯抓取的准确性。

S24,判断所述任务队列中是否存在相同的种子URL。

本实施例中,通过判断所述任务队列中是否存在相同的种子URL,是为了避免对同一个种子URL进行重复抓取,提高了目标新闻资讯的抓取准确率和效率。

S25,当所述任务队列中不存在所述相同的种子URL时,每隔预设周期查询所述目标主线程启动的多个目标子线程中是否存在空闲子线程。

本实施例中,可以预先设置预设周期,具体地,所述预设周期可以为1分钟或者30秒。所述空闲子线程是指所述子线程当前没有任务。

进一步地,所述方法还包括:

当所述任务队列中存在所述相同的种子URL时,继续读取关联后的每个所述种子URL依次发送至所述任务队列中。

S26,当所述目标主线程启动的多个目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程。

本实施例中,通过每隔预设周期查询所述目标主线程启动的目标子线程中是否存在空闲子线程,在确定目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程,避免所述目标子线程中出现任务不均的现象,提高了每个子线程的每个所述种子URL的读取速度。

进一步地,所述方法还包括:

当所述目标主线程启动的多个目标子线程中不存在空闲子线程时,持续每隔预设周期查询所述目标主线程启动的多个目标子线程中是否存在空闲子线程。

S27,控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取。

本实施例中,所述Puppeteer是一个Node.js库,提供了高级API来控制Chrome或Chromium,具体地,所述Puppeteer默认的运行模式是无头的,但是可以配置成非无头模式。

在一个可选的实施例中,所述控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取包括:

使用Puppeteer启动无头浏览器打开所述目标主线程读取的每个所述种子URL及对应的抓取策略;

跳转至每个所述种子URL对应的目标页面;

按照所述每个所述种子URL对应的抓取策略调用所述Puppeteer对所述目标页面进行抓取处理。

本实施例中,由于Puppeteer可以运行在linux服务器上,提供了一系列的API,确保了调用API的便利性,使用Puppeteer启动无头浏览器打开每个种子URL,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个目标子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率。

S28,当侦测到所述空闲子线程完成目标新闻资讯抓取后,通过所述目标主线程对所述空闲子线程的抓取结果进行统计得到所述目标新闻资讯的抓取结果。

本实施例中,当侦测到所述空闲子线程完成目标新闻资讯抓取后,通过目标主线程获取每个空闲子线程的抓取结果。

本实施例中,所述抓取结果可以包括,但不限于:抓取成功的数据、抓取异常的数据、抓取识别的数据、抓取相同的图片数据、抓取相同的文字数据。

本实施例中,目标主线程获取到一个空闲子线程的抓取结果,便将所述抓取结果存储在服务端的缓存中。当所有空闲子线程都抓取完毕之后,目标主线程统计所有空闲子线程的抓取结果,并根据所有的抓取结果进行统计,得到目标抓取结果。

进一步地,在侦测所述空闲子线程进行目标新闻资讯抓取过程中,所述方法还包括:

侦测是否有空闲子线程发生异常事件;

当侦测到有空闲子线程发生异常事件时,将发生异常事件的空闲子线程抓取处理后的数据进行删除。

本实施例中,通过对发生异常事件的空闲子线程抓取处理后的数据进行删除,确保了抓取处理后的目标新闻资讯的准确性。

综上所述,本实施例所述的新闻资讯抓取方法,一方面,控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取,使用Puppeteer启动无头浏览器打开每个种子URL,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个目标子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率;另一方面,启动目标主线程创建任务队列,并读取关联后的每个所述种子URL依次发送至所述任务队列中,通过创建任务队列的形式进行目标新闻资讯的抓取,可以避免每个种子URL被重复或者遗漏抓取的现象,提高了目标新闻资讯抓取的准确性;最后,当所述目标主线程启动的多个目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程,通过每隔预设周期查询所述目标主线程启动的目标子线程中是否存在空闲子线程,在确定目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程,避免所述目标子线程中出现任务不均的现象,提高了每个子线程的每个所述种子URL的读取速度。

实施例三

图3是本发明实施例三提供的新闻资讯抓取装置的结构图。

在一些实施例中,所述新闻资讯抓取装置30可以包括多个由程序代码段所组成的功能模块。所述新闻资讯抓取装置30中的各个程序段的程序代码可以存储于电子设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)新闻资讯抓取的功能。

本实施例中,所述新闻资讯抓取装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:解析模块301、生成模块302、读取模块303、启动模块304、抓取模块305、统计模块306及识别模块307。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

解析模块301,用于解析接收到的目标新闻资讯的抓取请求获取多个种子URL。

本实施例中,当需要对目标新闻资讯进行抓取时,通过客户端发起抓取请求至服务端,具体地,所述客户端可以为是能手机、IPAD或者其他现有的具有发送功能的设备,所述服务端可以为抓取子系统,在抓取过程中,如所述客户端可以向所述抓取子系统发送抓取请求,当所述服务端接收到客户端发送的抓取请求时,对抓取请求进行解析处理。

本实施例中,所述抓取请求中包含有抓取的目标新闻资讯对应的抓取需求、种子URL、种子URL的页面内容和页面结构等资讯。

生成模块302,用于为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,其中,所述目标新闻资讯抓取树的每个抓取节点中包含有对应的抓取策略。

本实施例中,由于每个种子URL对应的页面内容、页面结构、抓取需求不同,故为每个所述种子URL创建不同的抓取策略。

在一个可选的实施例中,所述生成模块302为每个所述种子URL创建抓取策略包括:

分析每个所述种子URL中的页面内容和页面结构得到分析结果;

获取每个所述种子URL对应的抓取需求;

根据每个所述种子URL的分析结果和对应的抓取需求为每个所述种子URL创建抓取策略。

本实施例中,所述页面内容包括页面查看次数、独特访问、页面停留时间等内容,所述页面结构是指每个页面的层级关系。

示例性的,第一个种子URL对应的抓取需求为文字,分析第一个种子URL中的文字内容和文字结构设置对应的抓取策略为:从第一个种子URL的起始页开始,随机选择一个URL进入,一层一层抓取目标文字内容,直至完成第一个种子URL的抓取;第二个种子URL对应的抓取需求为图片,分析第二个种子URL中的图片内容和图片结构设置对应的抓取策略为:预测第二个种子URL中的每个URL与所述第二个种子URL的相似度,选取相似度较大的多个URL进行抓取。

在一个可选的实施例中,所述生成模块302根据所述多个种子URL生成目标新闻资讯抓取树包括:

将所述多个种子URL中的每个所述种子URL的抓取节点转换为对应的目标新闻资讯抓取树的节点;

将所述多个种子URL中的每个所述种子URL的抓取节点之间的引用关系转换为对应的目标新闻资讯抓取树中节点之间的边,其中,所述目标新闻资讯抓取树中节点之间的边作为所述目标新闻资讯抓取树的节点之间的引用关系;

根据所述目标新闻资讯抓取树的节点和所述目标新闻资讯抓取树中节点之间的边生成目标新闻资讯抓取树。

本实施例中,所述目标新闻资讯抓取树是根据所述多个种子URL对应的抓取节点及每个种子URL的抓取节点之间的引用关系生成的,具体的,所述目标新闻资讯抓取树的节点之间的引用关系可以为预先设置的,例如,可以根据每个种子URL与所述目标新闻资讯的关联度进行预先设置,也可以多个种子URL之间的关联度进行预先设置。

本实施例中,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率,并根据多个种子URL生成目标新闻资讯抓取树,从目标新闻资讯抓取树的每个节点进行抓取,避免了重复抓取或者漏抓取种子URL的现象,提高了目标新闻资讯的抓取准确率。

读取模块303,用于启动主线程逐个读取所述目标新闻资讯抓取树中的每个抓取节点的目标种子URL及对应的抓取策略。

本实施例中,当所述服务端接收到所述抓取请求时,启动主线程逐个读取所述目标新闻资讯抓取树中的每个抓取节点的目标种子URL及对应的抓取策略,避免读取目标种子URL过程中出现遗漏或者重复读取的现象,提高目标种子UR L的读取准确性。

启动模块304,用于当侦测到所述主线程读取了预设数量的目标种子URL时,启动多个子线程,并将所述主线程读取的所述预设数量的目标种子URL按照预设的分配规则分给所述多个子线程。

本实施例中,可以预先设置分配规则,具体地,所述预设的分配规则可以为均分、随机分配、或者按照一定的倍数进行分配。

本实施例中,通过同时启动多个子线程能够节省主线程读取数据并启动子线程的等待时间,进一步提高服务端的处理效率。

在其他可选的实施例中,所述启动模块304:还用于当侦测到所述主线程读取了预设数量的目标种子URL时,对应启动一个子线程,并将所述预设数据的目标种子URL分发至所述子线程。

本实施例中,所述预设数量为预先设置的启动子线程的临界值。

示例性的,假设预设数量为10万,当主线程从第1个抓取节点读取到第10万个抓取节点的目标种子URL时,服务端对应启动一个子线程;接着,当主线程从第10万零1个抓取节点读取到第20万个抓取节点的目标种子URL时,服务端再对应启动一个子线程。即,服务端每侦测到主线程读取了预设数量的抓取节点的目标种子URL时,启动一个子线程。通过启动多个子线程,利用子线程处理对应数量的目标种子URL,能够在一定程度上加快目标种子URL中的新闻资讯的抓取速度。

抓取模块305,用于控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理。

本实施例中,所述Puppeteer是一个Node.js库,提供了高级API来控制Chrome或Chromium,具体地,所述Puppeteer默认的运行模式是无头的,但是可以配置成非无头模式。

在一个可选的实施例中,所述抓取模块305控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标种子URL,并进行抓取处理包括:

使用Puppeteer启动无头浏览器打开所述主线程读取的每个目标种子URL及对应的抓取策略;

跳转至所述目标种子URL对应的目标页面;

按照所述目标种子URL对应的抓取策略调用所述Puppeteer对所述目标页面进行抓取处理。

本实施例中,由于Puppeteer可以运行在linux服务器上,提供了一系列的API,确保了调用API的便利性,使用Puppeteer启动无头浏览器打开每个抓取节点的目标种子URL,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率。

统计模块306,用于当侦测到所述多个子线程完成抓取处理后,通过所述主线程对所述多个子线程的抓取结果进行统计得到所述目标新闻资讯的目标抓取结果。

本实施例中,当侦测到所述多个子线程完成目标新闻资讯抓取后,通过主线程获取每个子线程的抓取结果。

本实施例中,所述抓取结果可以包括,但不限于:抓取成功的数据、抓取异常的数据、抓取识别的数据、抓取相同的图片数据、抓取相同的文字数据。

本实施例中,主线程获取到一个子线程的抓取结果,便将所述抓取结果存储在服务端的缓存中,当所有子线程都抓取完毕之后,主线程统计所有子线程的抓取结果,并根据所有的抓取结果进行统计,得到目标抓取结果。

进一步地,在侦测所述多个子线程进行目标新闻资讯抓取过程中,侦测是否有子线程发生异常事件;当侦测到有子线程发生异常事件时,将发生异常事件的子线程抓取处理后的数据进行删除。

本实施例中,通过对发生异常事件的子线程抓取处理后的数据进行删除,确保了抓取处理后的目标新闻资讯的准确性。

进一步地,识别模块307,用于识别发生异常事件的子线程对应的目标抓取节点;对所述目标抓取节点中的目标种子URL及对应的目标抓取策略进行校验。

在其他一些可选的实施例中,所述对所述目标抓取节点中的目标种子URL及对应的目标抓取策略进行校验包括:

将所述目标抓取节点中目标种子URL与所述多个种子URL进行匹配;

当所述目标抓取节点中的目标种子URL与所述多个种子URL中的任意一个种子URL匹配时,判断目标抓取策略是否为所述目标种子URL的抓取策略;

当所述目标抓取策略为所述目标种子URL的抓取策略时,发送抓取建议至所述客户端。

本实施例中,通过对发生异常事件的子线程对应的目标抓取节点中的目标种子URL与目标抓取策略进行校验,辅助运维人员快速分析抓取处理异常原因,提高了运维人员的工作效率。

本实施例中,所述抓取建议可以根据抓取异常的原因进行设置,具体地,所述抓取建议可以为建议所述客户端重新提供抓取需求或者建议客户端检查提供的种子URL是否出错。本实施例通过将所述抓取建议发送至所述客户端,辅助客户端快速做出决定,提高了客户体验及抓取效率。

进一步地,当所述目标抓取节点中的目标种子URL与所述多个种子URL中的任意一个种子URL不匹配时,将所述目标抓取节点中的目标种子URL进行修正,对修正的目标种子URL进行二次抓取。

进一步地,当所述目标抓取策略不为所述目标种子URL的抓取策略时,将所述目标抓取节点中的抓取策略进行修正,根据修正后的抓取策略对所述目标抓取节点中目标种子URL进行二次抓取。

本实施例中,对发生异常的目标抓取节点中的目标种子URL和抓取策略进行校验,当校验确定是目标种子URL和\或抓取策略不一致时,对发生异常的目标抓取节点中的目标种子URL和\或抓取策略进行修正后二次抓取,提高了抓取的目标新闻资讯的完整性。

综上所述,本实施例所述的新闻资讯抓取装置,一方面,控制每个所述子线程使用Puppeteer打开所述主线程读取的每个目标抓取节点的目标种子URL,并进行抓取处理,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率;另一方面,启动主线程逐个读取所述种子URL目标新闻资讯抓取树中的目标抓取节点的目标种子URL及对应的抓取策略,避免读取目标种子URL过程中出现遗漏或者重复读取的现象,提高目标种子UR L的读取准确性;最后,为每个所述种子URL创建抓取策略,并根据所述多个种子URL生成目标新闻资讯抓取树,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率,并根据多个种子URL生成目标新闻资讯抓取树,从目标新闻资讯抓取树的每个节点进行抓取,避免了重复抓取或者漏抓取种子URL的现象,提高了目标新闻资讯的抓取准确率。

实施例四

图4是本发明实施例四提供的新闻资讯抓取装置的结构图。

在一些实施例中,所述新闻资讯抓取装置40可以包括多个由程序代码段所组成的功能模块。所述新闻资讯抓取装置40中的各个程序段的程序代码可以存储于电子设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图2描述)新闻资讯抓取的功能。

本实施例中,所述新闻资讯抓取装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:解析模块401、创建模块402、读取模块403、判断模块404、查询模块405、分发模块406、抓取模块407及统计模块408。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

解析模块401,用于解析接收到的目标新闻资讯的抓取请求获取多个种子URL。

本实施例中,当需要对目标新闻资讯进行抓取时,通过客户端发起抓取请求至服务端,具体地,所述客户端可以为是能手机、IPAD或者其他现有的具有发送功能的设备,所述服务端可以为抓取子系统,在抓取过程中,如所述客户端可以向所述抓取子系统发送抓取请求,当所述服务端接收到客户端发送的抓取请求时,对抓取请求进行解析处理。

本实施例中,所述抓取请求中包含有抓取的目标新闻资讯对应的抓取需求、种子URL、种子URL的页面内容和页面结构等资讯。

创建模块402,用于为每个所述种子URL创建抓取策略,并将每个所述种子URL与对应的抓取策略进行关联。

本实施例中,由于每个种子URL对应的页面内容、页面结构、抓取需求不同,故为每个所述种子URL创建不同的抓取策略。

在一个可选的实施例中,所述创建模块402为每个所述种子URL创建抓取策略包括:

分析每个所述种子URL中的页面内容和页面结构得到分析结果;

获取每个所述种子URL对应的抓取需求;

根据每个所述种子URL的分析结果和对应的抓取需求为每个所述种子URL创建抓取策略。

本实施例中,所述页面内容包括页面查看次数、独特访问、页面停留时间等内容,所述页面结构是指每个页面的层级关系。

示例性的,第一个种子URL对应的抓取需求为文字,分析第一个种子URL中的文字内容和文字结构设置对应的抓取策略为:从第一个种子URL的起始页开始,随机选择一个URL进入,一层一层抓取目标文字内容,直至完成第一个种子URL的抓取;第二个种子URL对应的抓取需求为图片,分析第二个种子URL中的图片内容和图片结构设置对应的抓取策略为:预测第二个种子URL中的每个URL与所述第二个种子URL的相似度,选取相似度较大的多个URL进行抓取。

本实施例中,通过为每个所述种子URL创建抓取策略,提高了目标新闻资讯的抓取准确率和效率。

读取模块403,用于启动目标主线程创建任务队列,并读取关联后的每个所述种子URL依次发送至所述任务队列中。

本实施例中,由于每个种子URL与对应的抓取策略存在关联关系,当服务端接收到抓取请求时,根据所述抓取请求启动目标主线程创建任务队列,并将关联后的每个所述种子URL依次发送至所述任务队列。

本实施例中,通过创建任务队列的形式进行目标新闻资讯的抓取,可以避免每个种子URL被重复或者遗漏抓取的现象,提高了目标新闻资讯抓取的准确性。

判断模块404,用于判断所述任务队列中是否存在相同的种子URL。

本实施例中,通过判断所述任务队列中是否存在相同的种子URL,是为了避免对同一个种子URL进行重复抓取,提高了目标新闻资讯的抓取准确率和效率。

进一步地,当所述任务队列中存在所述相同的种子URL时,继续读取关联后的每个所述种子URL依次发送至所述任务队列中。

查询模块405,用于当所述任务队列中不存在所述相同的种子URL时,每隔预设周期查询所述目标主线程启动的多个目标子线程中是否存在空闲子线程。

本实施例中,可以预先设置预设周期,具体地,所述预设周期可以为1分钟或者30秒。所述空闲子线程是指所述子线程当前没有任务。

进一步地,当所述目标主线程启动的多个目标子线程中不存在空闲子线程时,持续每隔预设周期查询所述目标主线程启动的多个目标子线程中是否存在空闲子线程。

分发模块406,用于当所述目标主线程启动的多个目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程。

本实施例中,通过每隔预设周期查询所述目标主线程启动的目标子线程中是否存在空闲子线程,在确定目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程,避免所述目标子线程中出现任务不均的现象,提高了每个子线程的每个所述种子URL的读取速度。

抓取模块407,用于控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取。

本实施例中,所述Puppeteer是一个Node.js库,提供了高级API来控制Chrome或Chromium,具体地,所述Puppeteer默认的运行模式是无头的,但是可以配置成非无头模式。

在一个可选的实施例中,所述抓取模块407控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取包括:

使用Puppeteer启动无头浏览器打开所述目标主线程读取的每个所述种子URL及对应的抓取策略;

跳转至每个所述种子URL对应的目标页面;

按照所述每个所述种子URL对应的抓取策略调用所述Puppeteer对所述目标页面进行抓取处理。

本实施例中,由于Puppeteer可以运行在linux服务器上,提供了一系列的API,确保了调用API的便利性,使用Puppeteer启动无头浏览器打开每个种子URL,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个目标子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率。

统计模块408,用于当侦测到所述空闲子线程完成目标新闻资讯抓取后,通过所述目标主线程对所述空闲子线程的抓取结果进行统计得到所述目标新闻资讯的抓取结果。

本实施例中,当侦测到所述空闲子线程完成目标新闻资讯抓取后,通过目标主线程获取每个空闲子线程的抓取结果。

本实施例中,所述抓取结果可以包括,但不限于:抓取成功的数据、抓取异常的数据、抓取识别的数据、抓取相同的图片数据、抓取相同的文字数据。

本实施例中,目标主线程获取到一个空闲子线程的抓取结果,便将所述抓取结果存储在服务端的缓存中。当所有空闲子线程都抓取完毕之后,目标主线程统计所有空闲子线程的抓取结果,并根据所有的抓取结果进行统计,得到目标抓取结果。

进一步地,在侦测所述空闲子线程进行目标新闻资讯抓取过程中,侦测是否有空闲子线程发生异常事件;当侦测到有空闲子线程发生异常事件时,将发生异常事件的空闲子线程抓取处理后的数据进行删除。

本实施例中,通过对发生异常事件的空闲子线程抓取处理后的数据进行删除,确保了抓取处理后的目标新闻资讯的准确性。

综上所述,本实施例所述的新闻资讯抓取装置,一方面,控制所述空闲子线程使用Puppeteer打开所述目标主线程读取的每个所述种子URL,并按照对应的抓取策略对每个所述种子URL进行目标新闻资讯抓取,使用Puppeteer启动无头浏览器打开每个种子URL,相比于非无头浏览器,减少了真实浏览器的渲染工作,加快了读取效率,并通过启动多个目标子线程使用Puppeteer进行目标新闻资讯的抓取处理,提高目标新闻资讯的抓取效率;另一方面,启动目标主线程创建任务队列,并读取关联后的每个所述种子URL依次发送至所述任务队列中,通过创建任务队列的形式进行目标新闻资讯的抓取,可以避免每个种子URL被重复或者遗漏抓取的现象,提高了目标新闻资讯抓取的准确性;最后,当所述目标主线程启动的多个目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程,通过每隔预设周期查询所述目标主线程启动的目标子线程中是否存在空闲子线程,在确定目标子线程中存在空闲子线程时,将所述目标主线程读取的每个所述种子URL分发至所述空闲子线程,避免所述目标子线程中出现任务不均的现象,提高了每个子线程的每个所述种子URL的读取速度。

实施例五

参阅图5所示,为本发明实施例三提供的电子设备的结构示意图。在本发明较佳实施例中,所述电子设备5包括存储器51、至少一个处理器52、至少一条通信总线53及收发器54。

本领域技术人员应该了解,图5示出的电子设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备5还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述电子设备5是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述电子设备5还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述电子设备5仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器51用于存储程序代码和各种数据,例如安装在所述电子设备5中的新闻资讯抓取装置30或40,并在电子设备5的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器51包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器52可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器52是所述电子设备5的控制核心(Control Unit),利用各种接口和线路连接整个电子设备5的各个部件,通过运行或执行存储在所述存储器51内的程序或者模块,以及调用存储在所述存储器51内的数据,以执行电子设备5的各种功能和处理数据。

在一些实施例中,所述至少一条通信总线53被设置为实现所述存储器51以及所述至少一个处理器52等之间的连接通信。

尽管未示出,所述电子设备5还可以包括给各个部件供电的电源(比如电池),可选的,电源可以通过电源管理装置与所述至少一个处理器52逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备5还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图3或图4,所述至少一个处理器52可执行所述电子设备5的操作装置以及安装的各类应用程序(如所述的新闻资讯抓取装置30或40)、程序代码等,例如,上述的各个模块。

所述存储器51中存储有程序代码,且所述至少一个处理器52可调用所述存储器51中存储的程序代码以执行相关的功能。例如,图3或图4中所述的各个模块是存储在所述存储器51中的程序代码,并由所述至少一个处理器52所执行,从而实现所述各个模块的功能以达到新闻资讯抓取的目的。

在本发明的一个实施例中,所述存储器51存储多个指令,所述多个指令被所述至少一个处理器52所执行以实现新闻资讯抓取的功能。

具体地,所述至少一个处理器52对上述指令的具体实现方法可参考图1或图2对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号