CN111444403A - 基于智能合约抓取数据的方法、装置、设备及存储介质 - Google Patents
基于智能合约抓取数据的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111444403A CN111444403A CN202010161827.6A CN202010161827A CN111444403A CN 111444403 A CN111444403 A CN 111444403A CN 202010161827 A CN202010161827 A CN 202010161827A CN 111444403 A CN111444403 A CN 111444403A
- Authority
- CN
- China
- Prior art keywords
- data
- preset
- task
- intelligent contract
- executed
- 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.)
- Pending
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/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Biology (AREA)
- Strategic Management (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Evolutionary Computation (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及区块链技术领域,公开了一种基于智能合约抓取数据的方法、装置、设备及存储介质,用于通过智能合约提高抓取数据准确率和成功率。基于智能合约抓取数据的方法包括:获取待执行任务;根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,以太网区块链包括至少一个用户节点;当检测到预先设置的触发事件触发执行时,在至少一个用户节点中通过预置爬虫任务按照智能合约处理待执行任务,得到抓取数据;按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
Description
技术领域
本发明涉及智能合约执行领域,尤其涉及基于智能合约抓取数据的方法、装置、设备及存储介质。
背景技术
区块链的智能合约(smart contract,SC)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
当前爬虫系统都面临着反抓取的问题,例如,当频度较大,或者抓取的信息比较敏感时,爬虫系统就会面临封禁,现有技术一般通过增加网际互连协议地址,或者清除客户端缓存cookie,并通过专属客户端众包的方式来应对防抓取系统的策略,导致应对反抓取系统时成本高,抓取数据成功率较低。
发明内容
本发明的主要目的在于解决了频度较大或者抓取信息比较敏感时,爬虫系统面临封禁,抓取数据成功率较低的技术问题。
为实现上述目的,本发明第一方面提供了一种基于智能合约抓取数据的方法,包括:获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集;根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点;当检测到所述预先设置的触发事件触发执行时,在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据;按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
可选的,在本发明第一方面的第一种实现方式中,所述获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集,包括:当接收到终端发送的新的配置数据时,将所述新的配置数据写入预置队列表中,所述新的配置数据包括不同的采集任务项;通过预置定时任务按照预置定时间隔或者预置定时时刻所述从所述预置队列表中读取所述不同的采集任务项,得到待执行任务,所述待执行任务用于指示根据所述不同的采集任务项进行数据采集。
可选的,在本发明第一方面的第二种实现方式中,所述根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点,包括:根据所述待执行任务对智能合约进行初始化,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件;启动预置以太坊节点,并在所述预置以太坊节点上编译初始化后的智能合约;将所述编译好的智能合约部署到以太坊区块链上,得到合约地址,所述以太网区块链包括至少一个用户节点;根据所述合约地址对所述智能合约进行签名验证。
可选的,在本发明第一方面的第三种实现方式中,所述根据所述待执行任务对智能合约进行初始化,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,包括:导入预设的文件,并基于所述预设的文件设置合约继承类,所述合约继承类包括构造函数、转账函数和收账函数;在所述合约继承类中设置所述不同的采集任务项、设置定制价格数据、设置虚拟代币的相关信息和预先设置的触发事件,所述虚拟代币的相关信息包括所述虚拟代币的发行总数量、所述虚拟代币的名称、所述虚拟代币的最小分割单位和所述虚拟代币的符号;在所述合约继承类的构造函数中将所述虚拟代币的发行总数量赋值到所述预置合约账号中;对所述预置合约账号中所述虚拟货币的余额信息进行设置。
可选的,在本发明第一方面的第四种实现方式中,所述当检测到所述预先设置的触发事件触发执行时,在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据,包括:通过预置命令启动预置爬虫任务;当检测到所述预置爬虫任务启动,并且所述预先设置的触发事件触发执行时,获取所述智能合约中的定制价格数据和虚拟代币的相关信息;当检测到所述定制价格数据和所述虚拟代币的相关信息满足预置条件时,获取所述智能合约中所述不同的采集任务项;通过所述预置爬虫任务按照所述智能合约在所述至少一个用户节点中执行所述不同的采集任务项,得到抓取数据。
可选的,在本发明第一方面的第五种实现方式中,所述按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互,包括:通过所述智能合约对所述抓取数据进行过滤和分析;判断所述抓取数据是否与所述不同的采集任务项匹配;若所述抓取数据与所述不同的采集任务项匹配,则确定所述抓取数据通过验证,得到已通过验证的抓取数据;根据所述已通过验证的抓取数据确定在所述以太网区块链上对应的至少一个用户节点,并根据所述至少一个用户节点发送数据交互消息请求;当接收到数据交互消息请求时,按照所述定制价格数据执行所述转账函数,并修改所述预置合约账号中所述虚拟货币的余额信息。
可选的,在本发明第一方面的第六种实现方式中,所述对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中,包括:根据预置聚类算法按照所述不同的采集任务项对已完成数据交互的抓取数据进行聚类处理,得到第一数据;对所述第一数据按照预置数据格式进行提取并封装,得到第二数据;通过预置应用接口将所述第二数据推送到预置业务应用中。
本发明第二方面提供了一种基于智能合约抓取数据的装置,包括:获取单元,用于获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集;部署单元,用于根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点;抓取单元,当检测到所述预先设置的触发事件触发执行时,用于在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据;数据交互单元,用于按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;聚类推送单元,用于对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
可选的,在本发明第二方面的第一种实现方式中,所述获取单元具体用于:当接收到终端发送的新的配置数据时,将所述新的配置数据写入预置队列表中,所述新的配置数据包括不同的采集任务项;通过预置定时任务按照预置定时间隔或者预置定时时刻所述从所述预置队列表中读取所述不同的采集任务项,得到待执行任务,所述待执行任务用于指示根据所述不同的采集任务项进行数据采集。
可选的,在本发明第二方面的第二种实现方式中,所述部署单元包括:初始化子单元,用于根据所述待执行任务对智能合约进行初始化,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件;编译子单元,用于启动预置以太坊节点,并在所述预置以太坊节点上编译初始化后的智能合约;部署子单元,用于将所述编译好的智能合约部署到以太坊区块链上,得到合约地址,所述以太网区块链包括至少一个用户节点;验证子单元,用于根据所述合约地址对所述智能合约进行签名验证。
可选的,在本发明第二方面的第三种实现方式中,所述初始化子单元具体用于:导入预设的文件,并基于所述预设的文件设置合约继承类,所述合约继承类包括构造函数、转账函数和收账函数;在所述合约继承类中设置所述不同的采集任务项、设置定制价格数据、设置虚拟代币的相关信息和预先设置的触发事件,所述虚拟代币的相关信息包括所述虚拟代币的发行总数量、所述虚拟代币的名称、所述虚拟代币的最小分割单位和所述虚拟代币的符号;在所述合约继承类的构造函数中将所述虚拟代币的发行总数量赋值到所述预置合约账号中;对所述预置合约账号中所述虚拟货币的余额信息进行设置。
可选的,在本发明第二方面的第四种实现方式中,所述抓取单元具体用于:通过预置命令启动预置爬虫任务;当检测到所述预置爬虫任务启动,并且所述预先设置的触发事件触发执行时,获取所述智能合约中的定制价格数据和虚拟代币的相关信息;当检测到所述定制价格数据和所述虚拟代币的相关信息满足预置条件时,获取所述智能合约中所述不同的采集任务项;通过所述预置爬虫任务按照所述智能合约在所述至少一个用户节点中执行所述不同的采集任务项,得到抓取数据。
可选的,在本发明第二方面的第五种实现方式中,所述数据交互单元具体用于:通过所述智能合约对所述抓取数据进行过滤和分析;判断所述抓取数据是否与所述不同的采集任务项匹配;若所述抓取数据与所述不同的采集任务项匹配,则确定所述抓取数据通过验证,得到已通过验证的抓取数据;根据所述已通过验证的抓取数据确定在所述以太网区块链上对应的至少一个用户节点,并根据所述至少一个用户节点发送数据交互消息请求;当接收到数据交互消息请求时,按照所述定制价格数据执行所述转账函数,并修改所述预置合约账号中所述虚拟货币的余额信息。
可选的,在本发明第二方面的第六种实现方式中,所述聚类推送单元具体用于:根据预置聚类算法按照所述不同的采集任务项对已完成数据交互的抓取数据进行聚类处理,得到第一数据;对所述第一数据按照预置数据格式进行提取并封装,得到第二数据;通过预置应用接口将所述第二数据推送到预置业务应用中。
本发明第三方面提供了一种基于智能合约抓取数据的设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于智能合约抓取数据的设备执行上述第一方面所述的基于智能合约抓取数据的方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的基于智能合约抓取数据的方法。
本发明提供的技术方案中,获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集;根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点;当检测到所述预先设置的触发事件触发执行时,在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据;按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。本发明实施例中,通过引入区块链的智能合约,将抓取任务灵活外包并轻松结算,并建立基于众包协作的分布式爬虫,降低分布式爬虫应对反抓取时的成本,提高抓取数据准确率和成功率。
附图说明
图1为本发明实施例中基于智能合约抓取数据的方法的一个实施例示意图;
图2为本发明实施例中基于智能合约抓取数据的方法的另一个实施例示意图;
图3为本发明实施例中基于智能合约抓取数据的装置的一个实施例示意图;
图4为本发明实施例中基于智能合约抓取数据的装置的另一个实施例示意图;
图5为本发明实施例中基于智能合约抓取数据的设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于智能合约抓取数据的方法、装置、设备及存储介质,用于通过引入区块链的智能合约,将抓取任务灵活外包并轻松结算,并建立基于众包协作的分布式爬虫,降低分布式爬虫应对反抓取时的成本,提高抓取数据准确率和成功率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于智能合约抓取数据的方法的一个实施例包括:
101、获取待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集;
可以理解的是,本发明的执行主体可以为基于智能合约抓取数据的装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
服务器获取待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集。其中,不同的采集任务项为预先根据实际业务动态设置的,例如,采集任务项A为从不同医疗系统中获取不同病人的医疗数据,采集任务项B为获取在不同环节的房地产交易数据,采集任务项C获取保险从投保到理赔过程中所有数据。
进一步地,服务器将不同的采集任务项存储到预置队列表中,得到待执行任务。其中,预置队列表为预先设置的按照先进先出规则储存若干消息的数据表,预置队列表用于指示如何存储并执行调度待执行任务。
102、根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,以太网区块链包括至少一个用户节点;
服务器根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,以太网区块链包括至少一个用户节点。其中,定制价格用于指示设置向用户节点支付的虚拟货币的数量信息,虚拟货币用于购买爬虫数据,实现分布式存储。
需要说明的是,一个区块链由至少一个用户节点共同维护,其中,用户节点也就是矿工,矿工是网络内的成员,通过解决与区块相关的复杂算法问题,在每个区块中竞争验证虚拟代币交易,其中,虚拟代币就是数字货币,例如,比特币、以太币和柚子币等。在以太坊上记录虚拟代币,每位用户都需要向以太坊网络支付少量交易费用以实现交易内容验证。
103、当检测到预先设置的触发事件触发执行时,在至少一个用户节点中通过预置爬虫任务按照智能合约处理待执行任务,得到抓取数据;
当检测到预先设置的触发事件触发执行时,服务器在至少一个用户节点中通过预置爬虫任务按照智能合约处理待执行任务,得到抓取数据。进一步地,服务器通过购买或租用大量计算能力来处理待执行任务,当对待执行任务处理完成后,服务器还需要验证虚拟货币,在通过验证后,至少一个用户节点将获得虚拟货币的奖励,以此激励至少一个用户节点使用计算能力进行验证数据交互信息。
需要说明的是,智能合约(smart contract,SC)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信数据交互,这些数据交互可追踪且不可逆转。
104、按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;
服务器按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互。因此,在以太网区块链上的数据交互形成一个分布式的交易账本,需要每个用户节点进行共同记录和维护。
可以理解的是,在以太坊区块链中的数据交互包括从一个地址往另一个地址转移虚拟代币的基本单位,也就是进行转账。去中心化的以太网区块链的力量在于,经济价值和治理分布在网络中的利益相关者之间,而不是集中在一个单一的组织中,任何人都可以拥有和转移数字资产,而不需要第三方。
105、对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
服务器对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。进一步地,服务器根据均值漂移聚类算法或者k均值聚类算法对已完成数据交互的抓取数据进行聚类处理,其中,聚类处理就是将已完成数据交互的抓取数据集中在某些方面相似的数据成员进行分类组织的处理过程。例如,已完成数据交互的抓取数据包括A、B、C、D和E,服务器根据均值漂移聚类算法或者k均值聚类算法对A、B、C、D和E进行聚类处理后,得到聚类处理后的数据包括A、C和D。
进一步地,服务器调用预置应用接口将聚类处理后的数据推送到预置业务应用中,通过预置业务应用对聚类处理后的数据进行存储并应用。
本发明实施例中,通过引入区块链的智能合约,将抓取任务灵活外包并轻松结算,并建立基于众包协作的分布式爬虫,降低分布式爬虫应对反抓取时的成本,提高抓取数据准确率和成功率。
请参阅图2,本发明实施例中基于智能合约抓取数据的方法的另一个实施例包括:
201、获取待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集;
服务器获取待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集。其中,待执行任务根据实际业务动态设置不同的采集任务项,并将不同的采集任务项存储到预置队列表中。
具体的,当接收到终端发送的新的配置数据时,服务器将新的配置数据写入预置对列表中,新的配置数据包括不同的采集任务项;服务器通过预置定时任务按照预置定时间隔或者预置定时时刻从预置对列表中读取不同的采集任务项,得到待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集。
202、根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,以太网区块链包括至少一个用户节点;
服务器根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,以太网区块链包括至少一个用户节点。具体的,首先,服务器根据待执行任务对智能合约进行初始化,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息以及预先设置的触发事件,可选的,服务器导入预设的文件,并设置合约继承类,合约继承类包括构造函数、转账函数以及收账函数,其中预设的文件包括预先创建的文件StandardToken.sol;服务器在合约继承类中设置不同的采集任务项、设置定制价格数据、设置虚拟代币的相关信息以及预先设置的触发事件,虚拟代币的相关信息包括虚拟代币的发行总数量、虚拟代币的名称、虚拟代币的最小分割单位以及虚拟代币的符号,例如,服务器采用常量INITIAL_SUPPLY表示初始化时虚拟代币的发行总数量;服务器在合约继承类的构造函数中将虚拟代币的发行总数量赋值到预置合约账号中,进一步地,服务器对预置合约账号中虚拟货币的余额信息进行设置。
其次,服务器启动预置以太坊节点,并在预置以太坊节点上编译初始化后的智能合约。可选的,服务器采用geth或者testrpc启动预置以太坊节点;服务器在预置以太坊节点上创建指定目录;服务器在指定目录下使用命令行编译工具solc编译智能合约,得到二进制代码文件,例如,编译后输出一个名为sourceFile.sol的智能合约文件;进一步地,服务器还可以采用solc对二进制代码文件进行优化,例如,solc--optimize--binsourceFile.sol。
然后,服务器将编译好的智能合约部署到以太坊区块链上,得到合约地址,以太网区块链包括至少一个用户节点。其中,合约地址为一个字符串,字符串用于标识发送数据交互的哈希hash值,需要说明的是,对编译好的智能合约部署成功后,服务器通过查询预置合约账户的余额有所减少,因为部署智能合约也属于一种数据交互操作,在区块链上任何数据交互都需要支付虚拟货币。
最后,服务器根据合约地址对智能合约进行签名验证。可以理解的是,智能合约包括一组函数和数据。智能合约也是位于以太坊区块链上的一个特殊地址。服务器采用智能合约建立匹配规则并存储数据,当至少一个用户节点给智能合约发送预置数量的虚拟代币时,智能合约就在自己的账户内建立对应地址的虚拟代币的数据。
203、当检测到预置爬虫任务启动,并且预先设置的触发事件触发执行时,获取智能合约中的定制价格数据和虚拟代币的相关信息;
当检测到预置爬虫任务启动,并且预先设置的触发事件触发执行时,服务器获取智能合约中的定制价格数据和虚拟代币的相关信息。进一步地,服务器根据合约地址和合约接口信息获取智能合约中的定制价格数据、虚拟代币的相关信息,合约接口信息包括变量、事件以及各类调用函数。
可以理解的是,当预置触发条件满足时,服务器从智能合约中自动发出预先设置的触发事件,智能合约以事务和事件的方式进行处理。
可选的,服务器开启预置爬虫任务,进一步地,服务器按照只能合约预先设置爬虫任务,并将预置爬虫任务进行部署后,按照预置命令对预置爬虫任务进行启动。
204、当检测到定制价格数据以及虚拟代币的相关信息满足预置条件时,获取智能合约中的不同的采集任务项;
当检测到定制价格数据以及虚拟代币的相关信息满足预置条件时,服务器获取智能合约中的不同的采集任务项。其中,预置条件包括虚拟代币的总数量能够提供定制价格数据的支付,并且已签约的智能合约的数量不大于预设阈值。
智能合约可用于各种不同的数据交互,比如金融产品、小额支付、物联网数据交换,或者按时间计费的内容付费业务。举例说明,将一个农作物收成保险业务写成智能合约,合同约定当连续两个月不下雨情况发生时,保险公司支付理赔款。保险公司在区块链上建立这样一个智能合约,自动从天气信息网站中搜索天气数据,当天气数据达到预置条件时,服务器通过智能合约自动执行资金转账,执行理赔程序。
205、通过预置爬虫任务按照智能合约在至少一个用户节点中执行不同的采集任务项,得到抓取数据;
服务器通过预置爬虫任务按照智能合约在至少一个用户节点中执行不同的采集任务项,得到抓取数据,进一步地,服务器通过预置爬虫任务按照字节码或一系列可由网络读取和解析的数字1和0,也就是智能合约执行不同的采集任务项,得到抓取数据。
可以理解的是,智能合约封装若干预定义的状态、转换规则、触发条件以及应对操作等,由参与方签署之后,以代码的形式写在区块数据部分上,经过区块链网络的传播和验证后被各个用户节点计入以太坊区块链中,区块链实时监控整个智能合约的状态,在确定满足特定的条件之后激活并执行条约。
206、按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;
服务器按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互。进一步地,服务器通过智能合约对抓取数据进行过滤和分析;服务器判断抓取数据是否与智能合约中的不同的采集任务项匹配;若抓取数据与智能合约中的不同的采集任务项匹配,则服务器确定抓取数据通过验证,得到已通过验证的抓取数据;服务器根据已通过验证的抓取数据确定对应的至少一个用户节点,并根据至少一个用户节点发送数据交互消息请求;当接收到数据交互消息请求时,服务器按照定制价格数据执行转账函数,并修改预置合约账号中虚拟货币的余额信息。
需要说明的是,在以太网区块链上的数据交互形成一个分布式的交易账本,需要每个用户节点进行共同记录和维护。
207、对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
服务器对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。具体的,服务器根据聚类算法按照不同的采集任务项对已完成数据交互的抓取数据进行聚类处理,得到第一数据,其中,聚类算法包括均值漂移聚类算法或者k均值聚类算法;服务器对第一数据按照预置数据格式进行提取并封装,得到第二数据;服务器将第二数据推送到预置业务应用中,进一步地,服务器调用预置应用接口将第二数据推动到预置业务应用中,通过预置业务应用对第二数据进行存储与应用。
本发明实施例中,通过引入区块链的智能合约,将抓取任务灵活外包并轻松结算,并建立基于众包协作的分布式爬虫,降低分布式爬虫应对反抓取时的成本,提高抓取数据准确率和成功率。
上面对本发明实施例中基于智能合约抓取数据的方法进行了描述,下面对本发明实施例中基于智能合约抓取数据的装置进行描述,请参阅图3,本发明实施例中基于智能合约抓取数据的装置的一个实施例包括:
获取单元301,用于获取待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集;
部署单元302,用于根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,以太网区块链包括至少一个用户节点;
抓取单元303,当检测到预先设置的触发事件触发执行时,用于在至少一个用户节点中通过预置爬虫任务按照智能合约处理待执行任务,得到抓取数据;
数据交互单元304,用于按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;
聚类推送单元305,用于对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
本发明实施例中,通过引入区块链的智能合约,将抓取任务灵活外包并轻松结算,并建立基于众包协作的分布式爬虫,降低分布式爬虫应对反抓取时的成本,提高抓取数据准确率和成功率。
请参阅图4,本发明实施例中基于智能合约抓取数据的装置的另一个实施例包括:
获取单元301,用于获取待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集;
部署单元302,用于根据待执行任务配置智能合约,并将智能合约部署到以太网区块链上,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,以太网区块链包括至少一个用户节点;
抓取单元303,当检测到预先设置的触发事件触发执行时,用于在至少一个用户节点中通过预置爬虫任务按照智能合约处理待执行任务,得到抓取数据;
数据交互单元304,用于按照智能合约对抓取数据进行验证,并在以太网区块链上按照定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;
聚类推送单元305,用于对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
可选的,获取单元301还可以具体用于:
当接收到终端发送的新的配置数据时,将新的配置数据写入预置队列表中,新的配置数据包括不同的采集任务项;
通过预置定时任务按照预置定时间隔或者预置定时时刻从预置队列表中读取不同的采集任务项,得到待执行任务,待执行任务用于指示根据不同的采集任务项进行数据采集。
可选的,部署单元302还可以进一步包括:
初始化子单元3021,用于根据待执行任务对智能合约进行初始化,智能合约包括不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件;
编译子单元3022,用于启动预置以太坊节点,并在预置以太坊节点上编译初始化后的智能合约;
部署子单元3023,用于将编译好的智能合约部署到以太坊区块链上,得到合约地址,以太网区块链包括至少一个用户节点;
验证子单元3024,用于根据合约地址对智能合约进行签名验证。
可选的,初始化子单元3021还可以具体用于:
导入预设的文件,并基于预设的文件设置合约继承类,合约继承类包括构造函数、转账函数和收账函数;
在合约继承类中设置不同的采集任务项、设置定制价格数据、设置虚拟代币的相关信息和预先设置的触发事件,虚拟代币的相关信息包括虚拟代币的发行总数量、虚拟代币的名称、虚拟代币的最小分割单位和虚拟代币的符号;
在合约继承类的构造函数中将虚拟代币的发行总数量赋值到预置合约账号中;
对预置合约账号中虚拟货币的余额信息进行设置。
可选的,抓取单元303还可以具体用于:
通过预置命令启动预置爬虫任务;
当检测到预置爬虫任务启动,并且预先设置的触发事件触发执行时,获取智能合约中的定制价格数据和虚拟代币的相关信息;
当检测到定制价格数据和虚拟代币的相关信息满足预置条件时,获取智能合约中不同的采集任务项;
通过预置爬虫任务按照智能合约在至少一个用户节点中执行不同的采集任务项,得到抓取数据。
可选的,数据交互单元304还可以具体用于:
通过智能合约对抓取数据进行过滤和分析;
判断抓取数据是否与不同的采集任务项匹配;
若抓取数据与不同的采集任务项匹配,则确定抓取数据通过验证,得到已通过验证的抓取数据;
根据已通过验证的抓取数据确定在以太网区块链上对应的至少一个用户节点,并根据至少一个用户节点发送数据交互消息请求;
当接收到数据交互消息请求时,按照定制价格数据执行转账函数,并修改预置合约账号中虚拟货币的余额信息。
可选的,聚类推送单元305还可以具体用于:
根据预置聚类算法按照不同的采集任务项对已完成数据交互的抓取数据进行聚类处理,得到第一数据;
对第一数据按照预置数据格式进行提取并封装,得到第二数据;
通过预置应用接口将第二数据推送到预置业务应用中。
本发明实施例中,通过引入区块链的智能合约,将抓取任务灵活外包并轻松结算,并建立基于众包协作的分布式爬虫,降低分布式爬虫应对反抓取时的成本,提高抓取数据准确率和成功率。
上面图3和图4从模块化功能实体的角度对本发明实施例中的基于智能合约抓取数据的装置进行详细描述,下面从硬件处理的角度对本发明实施例中基于智能合约抓取数据的设备进行详细描述。
图5是本发明实施例提供的一种基于智能合约抓取数据的设备的结构示意图,该基于智能合约抓取数据的设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)501(例如,一个或一个以上处理器)和存储器509,一个或一个以上存储应用程序507或数据506的存储介质508(例如一个或一个以上海量存储设备)。其中,存储器509和存储介质508可以是短暂存储或持久存储。存储在存储介质508的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于智能合约抓取数据的设备中的一系列指令操作。更进一步地,处理器501可以设置为与存储介质508通信,在基于智能合约抓取数据的设备500上执行存储介质508中的一系列指令操作。
基于智能合约抓取数据的设备500还可以包括一个或一个以上电源502,一个或一个以上有线或无线网络接口503,一个或一个以上输入输出接口504,和/或,一个或一个以上操作系统505,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5中示出的基于智能合约抓取数据的设备结构并不构成对基于智能合约抓取数据的设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于智能合约抓取数据的方法,其特征在于,包括:
获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集;
根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点;
当检测到所述预先设置的触发事件触发执行时,在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据;
按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;
对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
2.根据权利要求1所述的基于智能合约抓取数据的方法,其特征在于,所述获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集,包括:
当接收到终端发送的新的配置数据时,将所述新的配置数据写入预置队列表中,所述新的配置数据包括不同的采集任务项;
通过预置定时任务按照预置定时间隔或者预置定时时刻从所述预置队列表中读取所述不同的采集任务项,得到待执行任务,所述待执行任务用于指示根据所述不同的采集任务项进行数据采集。
3.根据权利要求1所述的基于智能合约抓取数据的方法,其特征在于,所述根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点,包括:
根据所述待执行任务对智能合约进行初始化,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件;
启动预置以太坊节点,并在所述预置以太坊节点上编译初始化后的智能合约;
将所述编译好的智能合约部署到以太坊区块链上,得到合约地址,所述以太网区块链包括至少一个用户节点;
根据所述合约地址对所述智能合约进行签名验证。
4.根据权利要求3所述的基于智能合约抓取数据的方法,其特征在于,所述根据所述待执行任务对智能合约进行初始化,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,包括:
导入预设的文件,并基于所述预设的文件设置合约继承类,所述合约继承类包括构造函数、转账函数和收账函数;
在所述合约继承类中设置所述不同的采集任务项、设置定制价格数据、设置虚拟代币的相关信息和预先设置的触发事件,所述虚拟代币的相关信息包括所述虚拟代币的发行总数量、所述虚拟代币的名称、所述虚拟代币的最小分割单位和所述虚拟代币的符号;
在所述合约继承类的构造函数中将所述虚拟代币的发行总数量赋值到所述预置合约账号中;
对所述预置合约账号中所述虚拟货币的余额信息进行设置。
5.根据权利要求1所述的基于智能合约抓取数据的方法,其特征在于,所述当检测到所述预先设置的触发事件触发执行时,在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据,包括:
通过预置命令启动预置爬虫任务;
当检测到所述预置爬虫任务启动,并且所述预先设置的触发事件触发执行时,获取所述智能合约中的定制价格数据和虚拟代币的相关信息;
当检测到所述定制价格数据和所述虚拟代币的相关信息满足预置条件时,获取所述智能合约中所述不同的采集任务项;
通过所述预置爬虫任务按照所述智能合约在所述至少一个用户节点中执行所述不同的采集任务项,得到抓取数据。
6.根据权利要求1或者4所述的基于智能合约抓取数据的方法,其特征在于,所述按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互,包括:
通过所述智能合约对所述抓取数据进行过滤和分析;
判断所述抓取数据是否与所述不同的采集任务项匹配;
若所述抓取数据与所述不同的采集任务项匹配,则确定所述抓取数据通过验证,得到已通过验证的抓取数据;
根据所述已通过验证的抓取数据确定在所述以太网区块链上对应的至少一个用户节点,并根据所述至少一个用户节点发送数据交互消息请求;
当接收到数据交互消息请求时,按照所述定制价格数据执行所述转账函数,并修改所述预置合约账号中所述虚拟货币的余额信息。
7.根据权利要求1所述的基于智能合约抓取数据的方法,其特征在于,所述对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中,包括:
根据预置聚类算法按照所述不同的采集任务项对已完成数据交互的抓取数据进行聚类处理,得到第一数据;
对所述第一数据按照预置数据格式进行提取并封装,得到第二数据;
通过预置应用接口将所述第二数据推送到预置业务应用中。
8.一种基于智能合约抓取数据的装置,其特征在于,所述基于智能合约抓取数据的装置包括:
获取单元,用于获取待执行任务,所述待执行任务用于指示根据不同的采集任务项进行数据采集;
部署单元,用于根据所述待执行任务配置智能合约,并将所述智能合约部署到以太网区块链上,所述智能合约包括所述不同的采集任务项、定制价格数据、虚拟代币的相关信息和预先设置的触发事件,所述以太网区块链包括至少一个用户节点;
抓取单元,当检测到所述预先设置的触发事件触发执行时,用于在所述至少一个用户节点中通过预置爬虫任务按照所述智能合约处理所述待执行任务,得到抓取数据;
数据交互单元,用于按照所述智能合约对所述抓取数据进行验证,并在所述以太网区块链上按照所述定制价格数据对已通过验证的抓取数据对应的至少一个用户节点进行数据交互;
聚类推送单元,用于对已完成数据交互的抓取数据进行聚类处理,并将聚类处理后的数据推送到预置业务应用中。
9.一种基于智能合约抓取数据的设备,其特征在于,所述基于智能合约抓取数据的设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于智能合约抓取数据的设备执行如权利要求1-7中任意一项所述的基于智能合约抓取数据的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任意一项所述的基于智能合约抓取数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010161827.6A CN111444403A (zh) | 2020-03-10 | 2020-03-10 | 基于智能合约抓取数据的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010161827.6A CN111444403A (zh) | 2020-03-10 | 2020-03-10 | 基于智能合约抓取数据的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111444403A true CN111444403A (zh) | 2020-07-24 |
Family
ID=71627394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010161827.6A Pending CN111444403A (zh) | 2020-03-10 | 2020-03-10 | 基于智能合约抓取数据的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444403A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626170A (zh) * | 2021-08-23 | 2021-11-09 | 中国联合网络通信集团有限公司 | 通信工程任务全生命周期的控制方法及装置 |
-
2020
- 2020-03-10 CN CN202010161827.6A patent/CN111444403A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626170A (zh) * | 2021-08-23 | 2021-11-09 | 中国联合网络通信集团有限公司 | 通信工程任务全生命周期的控制方法及装置 |
CN113626170B (zh) * | 2021-08-23 | 2023-07-18 | 中国联合网络通信集团有限公司 | 通信工程任务全生命周期的控制方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108063824A (zh) | 一种云服务系统及构建方法 | |
CN108897854A (zh) | 一种超时任务的监控方法和装置 | |
CN106096926B (zh) | 事件处理方法、装置、电子装置和存储介质 | |
CN110442502A (zh) | 一种埋点的方法、装置、设备及存储介质 | |
CN108830715A (zh) | 批量文件部分回盘处理方法和系统 | |
CN109543459A (zh) | 一种数据存证方法及设备 | |
CN110008173A (zh) | 一种数据存储的方法及装置 | |
CN111444403A (zh) | 基于智能合约抓取数据的方法、装置、设备及存储介质 | |
CN111612616A (zh) | 区块链账户评估方法、装置、终端设备及计算机可读介质 | |
CN109684256A (zh) | 服务器及数据传输方法 | |
CN107589965A (zh) | 一种软件开发方法及装置 | |
CN110119430B (zh) | 一种智能合约管理方法、服务器及计算机可读存储介质 | |
CN108876339B (zh) | 基于通证的电子宠物交易方法及装置 | |
CN110766393A (zh) | 资金结算方法和装置、存储介质、电子装置 | |
CN116029825A (zh) | 区块链的交易方法、装置、系统、电子设备及存储介质 | |
CN109636366A (zh) | 资金支付方法、用户设备、存储介质及装置 | |
CN110428314B (zh) | 用于汇总核对子系统的异步调用方法、装置及电子设备 | |
CN108805541A (zh) | 一种支付方法和系统、存储介质 | |
CN110135803B (zh) | 一种事项管理方法及区块链节点设备 | |
CN108021360A (zh) | 规则处理方法、代码处理方法及相关设备 | |
Su | Lifecycle optimization of smart contract for flexibility | |
CN112819464A (zh) | 一种智能合约处理方法、处理装置、终端设备及存储介质 | |
CN113595732B (zh) | 一种智能合约交互方法、装置和电子设备 | |
CN111754238A (zh) | 可疑交易识别方法及装置 | |
CN113127559B (zh) | 一种财税区块链的账本建立方法、装置及计算机设备 |
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 |