CN109815384B - 爬虫实现的方法、系统、设备及存储介质 - Google Patents
爬虫实现的方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN109815384B CN109815384B CN201910084845.6A CN201910084845A CN109815384B CN 109815384 B CN109815384 B CN 109815384B CN 201910084845 A CN201910084845 A CN 201910084845A CN 109815384 B CN109815384 B CN 109815384B
- Authority
- CN
- China
- Prior art keywords
- crawler
- module
- card
- calling
- data
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了爬虫实现的方法、系统、设备及存储介质,包括步骤:将封装的爬虫模块在宿主环境中运行并开放接口给调用端;通过内网网卡从调用端接收调用请求,调用请求包括目标网站的地址以及爬取方式;根据调用请求生成可执行脚本执行可执行脚本并通过外网网卡向目标网站爬取数据;将爬取数据通过内网网卡反馈调用端,通过上述方式实现不同后台数据分析系统共用爬虫模块,减少重复开发,提高数据实时性,节省系统资源。
Description
技术领域
本发明涉及网络信息技术领域,具体地说,涉及爬虫实现的方法、系统、设备及存储介质。
背景技术
随着互联网带来的数据量的井喷,如何有效并实时地获取数据成为互联网环境下的重要课题。爬虫技术即为一种网络信息获取的重要工具。爬虫技术爬取的数据通常需要为后台数据分析系统所使用,不同的后台数据分析系统针对不同的网站通常需要重新撰写爬虫技术的相关程序代码,因此产生了很多重复开发工作,后台管理也十分复杂。
同时,为了维护数据安全,通常将后台数据分析系统放置在内网系统中,因此爬取数据并进行数据分析的过程中,就需要首先将爬虫技术爬取的数据在内网转存然后再被后台数据分析系统所使用,这样的方式不能保证数据的实时性,也浪费了系统资源。
发明内容
针对上述技术中的问题,本发明为了解决上述技术问题,提供了一种爬虫实现的方法、系统、设备及存储介质,通过将爬虫模块封装并开放接口调用的形式供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫模块。通过内网网卡接收调用请求后,生成并执行可执行脚本,直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,提高实时性。
本发明的第一方面提供一种爬虫实现的方法,其特征在于包括步骤:
S10、将封装的爬虫模块在宿主环境中运行并开放接口给调用端,宿主环境包括内网网卡以及外网网卡;S20、通过内网网卡从调用端接收调用请求,调用请求包括目标网站的地址以及爬取方式;S30、根据调用请求生成可执行脚本;S40、执行可执行脚本并通过外网网卡向目标网站爬取数据;S50、将爬取数据通过内网网卡反馈调用端。
优选地,爬虫模块封装多个爬虫实现的功能函数,目标网站的地址以及爬取方式以参数形式设置,在步骤S30中,根据参数设置相应的功能函数,以生成可执行脚本。
优选地,宿主环境中部署虚拟IP地址模块,在步骤S40中,爬虫模块调用虚拟IP地址模块以获取虚拟IP地址,并使用虚拟IP地址向目标网站爬取数据。
优选地,宿主环境固定连接特定域名解析模块,特定域名解析模块能够解析内网域名以及外网域名。
优选地,在步骤S20中,设置计数器,每接收到一个调用请求,则计数器加1,每处理一个调用请求,则计数器减1;在步骤S40中,停止接收调用请求,查询当前计数器值,当计数器为0时,切换使用宿主环境中外网网卡,通过外网网卡向目标网站爬取数据。
优选地,包括多个爬虫模块以及多个宿主环境中,每一爬虫模块被部署在一宿主环境中,在步骤S20中,根据负载均衡算法分配处理调用请求的爬虫模块。
优选地,在爬虫模块显示上线标记或下线标记,当爬虫模块开始接收调用请求时,爬虫模块显示上线标记,当爬虫模块停止接收调用请求时,爬虫模块显示下线标记,在步骤S20中,根据负载均衡算法在显示上线标记的爬虫模块中分配处理调用请求的爬虫模块。
本发明的第二方面提供一种爬虫实现的系统,其特征在于爬虫实现的系统被封装在宿主环境中运行并开放接口给调用端,宿主环境包括内网网卡以及外网网卡,爬虫实现的系统包括:接口模块,接口模块用于通过内网网卡从调用端接收调用请求,调用请求包括目标网站的地址以及爬取方式,接口模块用于将爬取数据通过内网网卡反馈调用端;解析模块,解析模块用于根据调用请求生成可执行脚本;执行模块,执行模块用于执行可执行脚本并通过外网网卡向目标网站爬取数据。
本发明的第三方面还提供一种爬虫实现的设备,包括:处理器;存储器,其中存储有处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述第一方面的爬虫实现的方法的步骤。
本发明的第四方面还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述第一方面的爬虫实现的方法的步骤。
本发明所提供的爬虫实现的方法、系统、设备及存储介质通过将爬虫模块封装并开放接口调用的形式供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫模块,减少了重复开发工作,便于系统维护管理。
通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明的一实施例的包括爬虫模块的结构示意图;
图2是本发明的另一实施例的包括爬虫模块的结构示意图;
图3是本发明的一实施例的爬虫实现方法的流程图;
图4是本发明一实施例的爬虫实现的系统的结构示意图;
图5是本发明一实施例的爬虫实现的设备的结构示意图;以及
图6是本发明一实施例的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
爬虫技术是将目标网站的信息进行收集的一种方法,通过使用编程的方式循环实现打开链接以及获取当前链接下信息。爬虫技术爬取的数据通常需要为后台数据分析系统所使用,然而现有技术通常不将后台数据分析系统纳入整体考虑,因此针对不同的后台数据分析系统对不同的网站通常需要重新撰写爬虫技术的相关程序代码,从而产生了很多重复开发工作,后台管理复杂,另外,后台数据分析系统通常放置在内网系统中而爬虫技术需要在外网爬取数据,因而在爬取数据被后台数据分析系统使用时,产生内外网交互问题。
本发明通过将爬虫模块封装并开放接口调用的形式供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫模块,减少了重复开发工作,便于系统维护管理。通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
图1是本发明的一实施例的包括爬虫模块的结构示意图。图3是本发明的一实施例的爬虫实现方法的流程图。下面结合图1以及图3说明本发明一实施例的爬虫实现的方法。
如图1所示,本实施例中在宿主环境11中部署封装的爬虫模块10。本实施例中的宿主环境11包括宿主服务器以及在宿主服务器中运行的虚拟机,其中宿主服务器中包括内网网卡以及外网网卡,爬虫模块10被部署在虚拟机中运行。
优选地,爬虫模块10以SOA(Service Oriented Architecture,面向服务的架构)的方式进行标准化封装多个爬虫实现的功能函数,并通过SOA服务提供的契约文档对接相应的接口。由于SOA通过标准的、支持互联网、与操作系统无关的协议,例如SOAP协议(Simple Object Access Protocol,简单对象访问协议)实现连接交互操作,且服务的封装采用XML(eXtensible Markup Language,可扩展标记语言)协议,具有自解析和自定义的特性,因此能够被不同操作系统下的各类后台数据分析系统通过接口接入使用。
多个调用端20,例如后台数据分析系统,与爬虫模块10通过内网网卡数据连接,爬虫模块10开放接口给多个调用端20。
爬虫模块10通过外网网卡与外网中的目标网站30数据连接。
优选地,宿主环境11与特定域名解析模块40固定连接,特定域名解析模块40能够解析内网域名以及外网域名。爬虫模块10通过特定域名解析模块40进行域名解析,从而保障能够与内网的调用端20交互,也能够进行外网中的目标网站30的网页访问。
结合图1,图3所示,本发明的爬虫实现的方法,包括以下步骤:
S10,将封装的爬虫模块在宿主环境中运行并开放接口给调用端。
S20,通过内网网卡从调用端接收调用请求。
S30,根据调用请求生成可执行脚本。
S40,执行可执行脚本并通过外网网卡向目标网站爬取数据。
S50,将爬取数据通过内网网卡反馈调用端。
具体而言,首先如步骤S10,将封装的爬虫模块10在宿主环境11中运行并开发接口给多个调用端20调用。爬虫模块10标准化封装多个爬虫实现的功能函数。由于不同网站的页面结构和技术方案都有所不同,部分网站使用静态HTML(HyperText Markup Language,超文本标记语言),部分网站利用Ajax(Asynchronous Javascript and XML,异步JavaScript和XML)技术渲染页面。当对使用静态HTML的网站访问的时候,爬虫模块10爬取目标网页的HTML文本后,对HTML文本进行进一步解析从而获得信息。对使用Ajax动态生成内容的网站,爬虫模块10通过直接去请求相应的接口,从而直接获得数据。实现上述功能的功能函数均被封装在爬虫模块10中。
接着,如步骤S20,爬虫模块10通过宿主环境11中的内网网卡从调用端20接收调用请求。其中调用请求包括目标网站的地址以及爬取方式。爬取方式包括头信息、请求参数、请求方法、cookie设置等。头信息即header设置。请求参数包括针对特定目标网站的参数,例如token的参数。请求方法,例如GET请求获取Request-URI所标识的资源,POST在Request-URI所标识的资源后附加新的数据,HEAD请求获取由Request-URI所标识的资源的响应消息报头,PUT请求服务器存储一个资源,并用Request-URI作为其标识,DELETE请求服务器删除Request-URI所标识的资源等。COOKIE设置,述COOKIE是指部分目标网站为了辨别用户身份,进行会话控制(Session)跟踪而存储在用户本地终端上的数据。上述目标网站的地址以及爬取方式以参数形式被传入爬虫模块10。
如步骤S30,爬虫模块10根据上述调用请求生成可执行脚本。具体而言,根据步骤S20中获取的参数,设置相应的功能函数,以生成可执行脚本。
现有的WEB类爬虫程序均是完全固定的代码内容,一经部署就不能随意更改代码,而本实施例中将公共的爬虫功能函数封装,通过传递参数,并根据参数调用设置相应的功能函数,以生成可执行脚本的方式,使得对特定目标网站30能够使用特定的代码内容,从而实现灵活性,提高爬虫爬取数据的成功率。
如步骤S40,爬虫模块10执行可执行脚本并通过外网网卡向目标网站30爬取数据。
优选地,目标网站30为了保护网站本身的网络大数据,有时站会采取某些手段以防止爬虫技术对网络大数据的爬取,例如可以包括设置验证码、用户黑名单、COOKIE加密以及IP封锁等方式限制网络爬虫的请求。针对上述目标网站30对爬虫技术的封锁,除了通过在参数传递步骤,即步骤S20中,对头信息、请求参数、COOKIE设置等进行设置从而避免被目标网站30的反爬虫技术封锁外,本实施例中优选地在宿主环境11中部署虚拟IP地址模块。
在所述步骤S40中,爬虫模块10调用虚拟IP地址模块以获取虚拟IP地址,并使用虚拟IP地址向目标网站30爬取数据。在访问目标网站时使用大量虚拟IP,能够有效避免IP封锁的反爬虫技术,从而有效提高爬虫模块10爬取目标网站30的数据的成功率。
所述虚拟IP地址模块例如可以是ADSL代理拨号模块,通过ADSL的PPPoE方式进行拨号。其中上述ADSL数据是DSL技术的一种,全称为Asymmetric Digital Subscriber Line(非对称数字用户线路),也可以称为非对称数字用户环路,是一种新的数据传输方式,上述PPPOE是通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。PPPOE使用的还是普通的TCP/IP方式,并没有附加新的协议,另一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证以及通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL。爬虫模块10通过PPPoE-start以及PPPoE-stop命令启动以及停止向外拨号。
最后如步骤S50,爬虫模块10将爬取数据通过内网网卡反馈调用端20。本实施例中优选地使用Json(JavaScript Object Notation,JavaScript对象表示法)形式将爬取数据反馈调用端20。Json是轻量级的文本数据交换格式,独立于语言和平台,因此能够快速、高效的传递给不同系统以及语言环境下的调用端20所需要的爬取数据。
为了更好地进行内外网数据传输的协调,在一优选的实施例中在所述步骤S20中,设置计数器,爬虫模块10每接收到一个调用请求,则计数器加1,每处理一个调用请求,则计数器减1。在步骤S40中,爬虫模块10首先停止接收调用请求,查询当前计数器值,当计数器为0时,切换使用宿主环境11中外网网卡,通过外网网卡向目标网站30爬取数据。即爬虫模块10在接收调用端20的请求时使用内网网卡,且每接收到一个调用请求计数器加1,在步骤S40时,当且仅当爬虫模块10处理完所有调用请求时,切换内网网卡为外网网卡,并开始向目标网站30爬取数据。
图2是本发明的另一实施例的包括爬虫模块的结构示意图。图2所示的实施例与图1所示的实施例的基础上增加了爬虫模块10,多个爬虫模块10构成了爬虫模块集群。
作为一种优选的实施方式,图2所示的实施例中包括多个爬虫模块10以及多个宿主环境11,每一爬虫模块10被部署在一宿主环境11中,并连接一控制服务器50。
在步骤S20中,控制服务器50接收多个调用端20发来的调用请求,并根据负载均衡算法分配处理调用请求的爬虫模块10。
优选地,爬虫模块10显示上线标记或下线标记,当爬虫模块10开始接收调用请求时,所述爬虫模块显示上线标记,当爬虫模块10停止接收调用请求时,爬虫模块10显示下线标记。在所述步骤S20中,控制服务器50根据负载均衡算法在标识了上线标记的爬虫模块10中分配处理调用请求的爬虫模块10。在此基础上,结合上述对图1实施例中介绍的计数器,当爬虫模块10停止接收调用请求,查询当前计数器值时,当前爬虫模块10显示下线标记,当完成目标网站30爬取数据时,当前爬虫模块10重新显示上线标记,从而进一步合理分配资源,提高整体系统运行效率。
可以理解的是,在其他实施例中,可以由部署爬虫模块10的宿主环境11显示上线标记或下线标记。在另一实施例中,多个爬虫模块10也可以部署在同一个宿主环境11中,或者多个爬虫模块10部署在不同虚拟机中,然而不同虚拟机部署在同一宿主服务器中。
通过上述对本发明的实施例的爬虫实现的方法的介绍可以看出,本发明通过将爬虫模块封装并开放接口调用的形式供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫模块,减少了重复开发工作,便于系统维护管理。
通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
通过部署虚拟IP地址模块以及参数传递步骤有效针对爬虫封锁技术,提高目标网站爬取的成功率。
通过设置计数器进一步协调爬虫模块对于内网数据与外网数据的处理,保证调用请求处理及时性以及防止遗漏。
通过进行爬虫模块集群的部署,提高资源分配,提升爬虫技术的爬取效率。
本发明还提供了一种爬虫实现的系统,该爬虫实现的系统用于针对不同的后台数据分析系统对不同的网站通常需要重新撰写爬虫技术的相关程序代码,从而产生了很多重复开发工作,后台管理复杂的问题,以及外网爬取数据被后台数据分析系统使用时,产生内外网交互问题。本发明通过将爬虫模块封装并开放接口调用的形式供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫模块,减少了重复开发工作,便于系统维护管理。通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
图3是本发明的一实施例的包括爬虫实现的系统的模块示意图。本实施例中的爬虫实现的系统用于实现上述的爬虫实现的方法,爬虫实现的系统10即为上述爬虫实现的方法中的爬虫模块10。
如图3所示,爬虫实现的系统10被封装在宿主环境11中运行并开放接口给调用端20,宿主环境11包括内网网卡以及外网网卡。爬虫实现的系统10包括接口模块101,解析模块102以及执行模块103。
接口模块101用于通过内网网卡从调用端接收调用请求,调用请求包括目标网站的地址以及爬取方式,接口模块101用于将爬取数据通过内网网卡反馈所述调用端20。
解析模块102用于根据调用请求生成可执行脚本。
执行模块103用于执行可执行脚本并通过外网网卡向目标网站30爬取数据。
可以理解的是,本发明的爬虫实现的系统还包括其他支持爬虫实现的系统运行的现有功能模块。图3显示的爬虫实现的系统仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
本实施例中的爬虫实现的系统用于实现上述的爬虫实现的方法,因此对于爬虫实现的系统的具体实施步骤可以参照上述对爬虫实现的方法的描述,此处不再赘述。
本发明实施例还提供一种爬虫实现设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的上述的爬虫实现的方法的步骤。
如上,该实施例中由爬虫模块被封装在爬虫实现设备中,所述爬虫实现设备包括内网网卡以及外网网卡。封装的爬虫模块开放接口给调用端,通过内网网卡从调用端接收调用请求,调用请求包括目标网站的地址以及爬取方式,根据调用请求生成可执行脚本执行可执行脚本并通过外网网卡向目标网站爬取数据,最后将爬取数据通过内网网卡反馈调用端。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
图5是本发明一实施例的爬虫实现设备的结构示意图。下面参照图5来描述根据本发明的这种实施方式的爬虫实现设备600。图5显示的爬虫实现设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,爬虫实现设备600以通用计算设备的形式表现。爬虫实现设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
爬虫实现设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该爬虫实现设备600交互的设备通信,和/或与使得该爬虫实现设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,爬虫实现设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与爬虫实现设备600的其它模块通信。应当明白,尽管图中未示出,可以结合爬虫实现设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本发明所提供的爬虫实现设备通过将爬虫模块整体封装,并通过接口供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫实现的系统,从而减少了重复开发工作,便于系统维护管理。通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现上述实施例中的爬虫实现的方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
如上所示,该实施例的计算机可读存储介质的程序在执行时,通过将爬虫模块整体封装,并通过接口供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫实现的系统,从而减少了重复开发工作,便于系统维护管理。通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
图6是本发明一实施例的计算机可读存储介质的结构示意图。参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本发明的爬虫实现的方法、系统、设备及存储介质通过将爬虫模块整体封装,并通过接口供多个不同的后台数据分析系统调用,从而实现不同后台数据分析系统共用爬虫实现的系统,从而减少了重复开发工作,便于系统维护管理。通过内网网卡接收调用请求,根据调用请求生成可执行脚本,执行可执行脚本并直接通过外网网卡向目标网站爬取数据,从而实现目标网站数据的直接获取分析,不需要数据在内网转存,提高数据实时性,节省系统资源。
后台数据分析系统的开发人员仅需通过本发明的爬虫模块所提供的接口,通过参数传递就可以实现针对特定目标网站的爬虫可执行脚本生成,并通过爬虫模块自动执行可执行脚本,返回后台数据分析系统即调用端爬取的数据,简便而有效地实现了对目标网站的数据获取。
由于宿主环境包括内网网卡以及外网网卡,爬虫模块能够有效进行内外网切换以及数据交换,因而在保障数据安全性的同时,能够实时地直接将外网中爬取的数据直接传递到内网中的后台数据分析系统,提高系统运行效率,提高数据实时性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种爬虫实现的方法,其特征在于包括步骤:
S10、将封装的爬虫模块在宿主环境中运行并开放接口给调用端,所述宿主环境包括内网网卡以及外网网卡;
S20、所述爬虫模块通过所述内网网卡从调用端接收调用请求,所述调用请求包括目标网站的地址以及爬取方式;
S30、所述爬虫模块根据所述调用请求生成可执行脚本;
S40、所述爬虫模块执行所述可执行脚本并通过所述外网网卡向目标网站爬取数据;
S50、所述爬虫模块将爬取数据通过所述内网网卡反馈所述调用端。
2.如权利要求1所述的爬虫实现的方法,其特征在于,所述爬虫模块封装多个爬虫实现的功能函数,所述目标网站的地址以及爬取方式以参数形式设置,在所述步骤S30中,根据所述参数设置相应的功能函数,以生成可执行脚本。
3.如权利要求1所述的爬虫实现的方法,其特征在于,所述宿主环境中部署虚拟IP地址模块,在所述步骤S40中,所述爬虫模块调用所述虚拟IP地址模块以获取虚拟IP地址,并使用虚拟IP地址向目标网站爬取数据。
4.如权利要求1所述的爬虫实现的方法,其特征在于,所述宿主环境固定连接特定域名解析模块,所述特定域名解析模块能够解析内网域名以及外网域名。
5.如权利要求1所述的爬虫实现的方法,其特征在于,在所述步骤S20中,设置计数器,每接收到一个调用请求,则计数器加1,每处理一个所述调用请求,则计数器减1;在所述步骤S40中,停止接收调用请求,查询当前计数器值,当所述计数器为0时,切换使用所述宿主环境中外网网卡,通过所述外网网卡向目标网站爬取数据。
6.如权利要求1所述的爬虫实现的方法,其特征在于包括多个爬虫模块以及多个宿主环境中,每一所述爬虫模块被部署在一所述宿主环境中,在所述步骤S20中,根据负载均衡算法分配处理所述调用请求的所述爬虫模块。
7.如权利要求6所述的爬虫实现的方法,其特征在于在所述爬虫模块显示上线标记或下线标记,当所述爬虫模块开始接收调用请求时,所述爬虫模块显示上线标记,当所述爬虫模块停止接收调用请求时,所述爬虫模块显示下线标记,在所述步骤S20中,根据负载均衡算法在显示上线标记的爬虫模块中分配处理所述调用请求的爬虫模块。
8.一种爬虫实现的系统,其特征在于所述爬虫实现的系统被封装在宿主环境中运行并开放接口给调用端,所述宿主环境包括内网网卡以及外网网卡,所述爬虫实现的系统包括:
接口模块,所述接口模块用于通过所述内网网卡从调用端接收调用请求,所述调用请求包括目标网站的地址以及爬取方式,所述接口模块用于将爬取数据通过所述内网网卡反馈所述调用端;
解析模块,所述解析模块用于根据所述调用请求生成可执行脚本;
执行模块,所述执行模块用于执行所述可执行脚本并通过所述外网网卡向目标网站爬取数据。
9.一种爬虫实现的设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任意一项所述爬虫实现的方法的步骤。
10.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至7中任意一项所述爬虫实现的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910084845.6A CN109815384B (zh) | 2019-01-29 | 2019-01-29 | 爬虫实现的方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910084845.6A CN109815384B (zh) | 2019-01-29 | 2019-01-29 | 爬虫实现的方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815384A CN109815384A (zh) | 2019-05-28 |
CN109815384B true CN109815384B (zh) | 2020-12-22 |
Family
ID=66605663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910084845.6A Active CN109815384B (zh) | 2019-01-29 | 2019-01-29 | 爬虫实现的方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815384B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339388B (zh) * | 2019-06-13 | 2021-07-27 | 海通证券股份有限公司 | 一种信息爬取系统 |
CN110457556B (zh) * | 2019-07-04 | 2023-11-14 | 重庆金融资产交易所有限责任公司 | 分布式爬虫系统架构、爬取数据的方法和计算机设备 |
CN110569414A (zh) * | 2019-08-21 | 2019-12-13 | 时趣互动(北京)科技有限公司 | 一种基于puppeteer的网站数据收集方法 |
CN111859076B (zh) * | 2020-07-31 | 2024-04-02 | 平安健康保险股份有限公司 | 数据爬取方法、装置、计算机设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516337A (zh) * | 2015-12-28 | 2016-04-20 | 南京大学金陵学院 | 基于动态加载机制的web站点对接解析方法 |
CN106021257A (zh) * | 2015-12-31 | 2016-10-12 | 广州华多网络科技有限公司 | 一种支持在线编程的爬虫抓取数据方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8005816B2 (en) * | 2006-03-01 | 2011-08-23 | Oracle International Corporation | Auto generation of suggested links in a search system |
US10049167B2 (en) * | 2015-12-31 | 2018-08-14 | Samsung Electronics Co., Ltd. | System for transforming mobile app into addressable network for stateless access |
CN106020897A (zh) * | 2016-05-30 | 2016-10-12 | 深圳市华傲数据技术有限公司 | 网络爬虫的动态管理方法、装置及系统 |
US10491622B2 (en) * | 2017-01-04 | 2019-11-26 | Synack, Inc. | Automatic webpage change detection |
-
2019
- 2019-01-29 CN CN201910084845.6A patent/CN109815384B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516337A (zh) * | 2015-12-28 | 2016-04-20 | 南京大学金陵学院 | 基于动态加载机制的web站点对接解析方法 |
CN106021257A (zh) * | 2015-12-31 | 2016-10-12 | 广州华多网络科技有限公司 | 一种支持在线编程的爬虫抓取数据方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
python爬虫爬取APP并封装成API接口调用,使用flask-restful;大蛇王;《CSDN,https://blog.csdn.net/t8116189520/article/details/80179221》;20180503;第1-6页 * |
基于网络爬虫的网站信息采集技术研究;孙骏雄;《中国优秀硕士学位论文全文数据库信息科技辑》;20150315;第I139-326页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109815384A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815384B (zh) | 爬虫实现的方法、系统、设备及存储介质 | |
CN110535831B (zh) | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 | |
CN108055248B (zh) | 基于dubbo框架的远程调用方法、服务器及存储介质 | |
CN110351342A (zh) | 业务指令处理方法、装置、计算机设备和存储介质 | |
CN112104754B (zh) | 网络代理方法、系统、装置、设备及存储介质 | |
CN108574709B (zh) | 跨域操作的实现方法和装置 | |
CN110489192B (zh) | 远程通信方法及装置、电子设备 | |
CN103092599A (zh) | 软件开发套件 | |
US9338053B1 (en) | Automatically configuring virtual private networks | |
US11023558B1 (en) | Executing functions on-demand on a server utilizing web browsers | |
CN104317570B (zh) | 动态解析Web应用的装置和方法 | |
US20090063687A1 (en) | Hybrid connection model | |
CN111897492B (zh) | 一种基于块设备驱动的数据处理方法、装置及电子设备 | |
CN104270443B (zh) | 一种能够动态解析Web应用的云计算系统及方法 | |
US10225358B2 (en) | Page push method, device, server and system | |
US20180239516A1 (en) | Methods for generating and publishing microsites and devices thereof | |
CN111712799B (zh) | 供在非边缘装置和边缘装置上执行的模型的自动分布 | |
CN114416169A (zh) | 基于微前端的数据处理方法、介质、装置和计算设备 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
US20100100955A1 (en) | System and method for secure os access in an ecma-script virtual machine | |
CN110598146B (zh) | 基于Reactjs的SPA应用程序实现方法以及装置 | |
AU2018390863B2 (en) | Computer system and method for extracting dynamic content from websites | |
CN113806008A (zh) | 集群访问方法、装置、电子设备及可读存储介质 | |
CN116737677A (zh) | 一种资源处理方法、装置、计算机设备和可读存储介质 | |
US9537931B2 (en) | Dynamic object oriented remote instantiation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |