本发明涉及数据挖掘,特别涉及一种数据采集方法、装置、设备及存储介质。
背景技术:
1、网络爬虫技术,作为外部数据采集的重要手段,已经逐渐从专业领域走向普及。它能够通过自动化程序模拟人类浏览网页的行为,从互联网上抓取结构化或非结构化的数据。但是,目前常用的网络数据采集单元(爬虫)在面对海量、异构、动态变化的新闻时,往往存在采集效率低下、准确性差、实时性不足等问题。
2、因此,如何实时高效采集网络中的数据是本领域要解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种数据采集方法、装置、设备及存储介质,可以通过不同网站服务器上的数据采集单元采集实时数据,并更新本地数据库的状态信息,以便及时上传数据;能够提高数据采集效率和时效性。其具体方案如下:
2、第一方面,本申请提供了一种数据采集方法,应用于包含若干数据采集单元的控制节点,包括:
3、将若干数据采集单元分配至若干网站服务器,以便所述若干数据采集单元从相应网站服务器采集实时数据;
4、获取所述若干数据采集单元采集到的实时数据,并将所述实时数据保存至本地数据库,以便基于所述实时数据更新所述本地数据库的状态信息;
5、根据预设数据上传周期和所述状态信息生成针对所述本地数据库中数据的数据上传任务,并基于预设任务执行策略执行所述数据上传任务,以完成相应的数据采集过程。
6、可选的,所述将若干数据采集单元分配至若干网站服务器,包括:
7、根据预设数据采集需求对应的若干数据类型确定与所述若干数据类型对应的若干网站服务器;
8、将若干数据采集单元分别分配至所述若干网站服务器。
9、可选的,所述若干数据采集单元从相应网站服务器采集实时数据,包括:
10、控制所述若干数据采集单元采用多线程方式从相应网站服务器实时采集页面源代码信息,并基于预设数据采集需求从所述页面源代码信息中提取得到初始数据,然后对所述初始数据进行解析,以得到结构化的实时数据。
11、可选的,所述获取所述若干数据采集单元采集到的实时数据,包括:
12、基于预设状态检查周期检查所述若干数据采集单元的运行状态,并在所述运行状态表征数据采集单元正常工作时获取该数据采集单元在当前状态检查周期内从网站服务器中采集到的实时数据。
13、可选的,所述状态信息包括所述本地数据库中已保存的数据对应的最新时间戳、最新的页面源代码信息对应的页码。
14、可选的,所述根据预设数据上传周期和所述状态信息生成针对所述本地数据库中数据的数据上传任务,包括:
15、根据预设数据上传周期确定每个数据上传周期对应的由所述若干数据采集单元采集到的目标数据;
16、基于所述目标数据对应的数据采集单元之间的差异生成所述目标数据对应的若干数据上传任务。
17、可选的,所述基于预设任务执行策略执行所述数据上传任务,包括:
18、在单个任务执行周期内,根据当前的数据上传任务对应数据量的大小正比例调整下一个数据上传任务的等待时间,并在所述等待时间结束后执行下一个数据上传任务;
19、检查当前任务执行周期结束时预设任务队列中是否存在数据上传任务;
20、若所述预设任务队列中存在未执行的目标数据上传任务,则从所述本地数据库中取出相关待上传数据,并通过调用预设接口对所述待上传数据进行数据上传操作。
21、第二方面,本申请提供了一种数据采集装置,应用于包含若干数据采集单元的控制节点,包括:
22、数据采集模块,用于将若干数据采集单元分配至若干网站服务器,以便所述若干数据采集单元从相应网站服务器采集实时数据;
23、数据保存模块,用于获取所述若干数据采集单元采集到的实时数据,并将所述实时数据保存至本地数据库,以便基于所述实时数据更新所述本地数据库的状态信息;
24、数据上传模块,用于根据预设数据上传周期和所述状态信息生成针对所述本地数据库中数据的数据上传任务,并基于预设任务执行策略执行所述数据上传任务,以完成相应的数据采集过程。
25、第三方面,本申请提供了一种电子设备,包括:
26、存储器,用于保存计算机程序;
27、处理器,用于执行所述计算机程序以实现如上述的数据采集方法。
28、第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如上述的数据采集方法。
29、由此可见,本申请中,包含若干数据采集单元的控制节点可以将若干数据采集单元分配至若干网站服务器,以便所述若干数据采集单元从相应网站服务器采集实时数据;然后获取所述若干数据采集单元采集到的实时数据,并将所述实时数据保存至本地数据库,以便基于所述实时数据更新所述本地数据库的状态信息;再根据预设数据上传周期和所述状态信息生成针对所述本地数据库中数据的数据上传任务,并基于预设任务执行策略执行所述数据上传任务,以完成相应的数据采集过程。这样一来,本申请可以将不同数据采集单元分别分配至不同的网站服务器,可以采集大量实时数据,然后根据采集到的实时数据的时效性及时更新本地数据库的状态信息,且基于该本地数据库的状态信息可以及时上传数据;这样可以提高数据采集的效率和采集得到的数据的时效性,提高采集得到的数据的实时可靠性,适应更多的数据采集场景。
1.一种数据采集方法,其特征在于,应用于包含若干数据采集单元的控制节点,包括:
2.根据权利要求1所述的数据采集方法,其特征在于,所述将若干数据采集单元分配至若干网站服务器,包括:
3.根据权利要求1所述的数据采集方法,其特征在于,所述若干数据采集单元从相应网站服务器采集实时数据,包括:
4.根据权利要求1所述的数据采集方法,其特征在于,所述获取所述若干数据采集单元采集到的实时数据,包括:
5.根据权利要求3所述的数据采集方法,其特征在于,所述状态信息包括所述本地数据库中已保存的数据对应的最新时间戳、最新的页面源代码信息对应的页码。
6.根据权利要求1至5任一项所述的数据采集方法,其特征在于,所述根据预设数据上传周期和所述状态信息生成针对所述本地数据库中数据的数据上传任务,包括:
7.根据权利要求6所述的数据采集方法,其特征在于,所述基于预设任务执行策略执行所述数据上传任务,包括:
8.一种数据采集装置,其特征在于,应用于包含若干数据采集单元的控制节点,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据采集方法。